git对gitlab/github源码下载及更新
从远程别人仓库下载需要的源代码,仓库更新后跟新。
一、配置SSH
1.1 生成ssh**
可以在cmd命令行 输入ssh
看下自己有没有生成过,我这边是已经生成过了。
没有的话生成ssh, 在 cmd 或 gitbash 输入:ssh-keygeng -t rsa -C "你自己的邮箱@163.com"
一路回车,不要设置密码,不要改路径
1.2 将ssh私钥添加到ssh-agent
在gitbash 输入下面给两条命令:
eval &(ssh-agent -s)
ssh-add /c/xxxx/.ssh/id_rsa
1.3 添加公钥到github/gitlab 账号
去到生成ssh的路径,找到 id_rsa.pub 记事本打开,复制里面所有内容
a.github
setting -> SSH and GPG keys -> new ssh key
title 随便写,可以写成自己的邮箱啥的,然后吧刚复制的公钥内容粘贴到下面的框里,添加

b. gitlab
setting -> SSH Keys
同样操作,粘贴公钥,添加完后下面会显示你添加的ssh keys.
完事后可以在cmd 或 gitbash 输入:ssh -T [email protected]
/ ssh -T [email protected]
测试是否已正确连接
二、下载源码
用到的命令是 git clonegit clone 库地址
git clone 也支持多种协议下载 https ssh git 等,常用两种:
复制ssh 或 https 地址,在你想要放置的目录打开git bash ,输入
git clone https://gitlab.kitware.com/iMSTK/iMSTK.git
完事就等待下载完成就可以了~
三、更新源码
当远程仓库源码发生了更新,你想要同步跟新的话,两个办法
- 直接把你现在的东西全删了,重新回到二下载
- 使用 git pull 命令拉取并更新代码
这边说git pull 它是 git fetch 和 git merge FETCH_HEAD 的合体
在你源码所在目录打开 git bash 输入下面命令:
git pull origin master
该命令的意思是将远程 master 分支的代码拉取合并到当前代码分支(我这边就是下的master分支) 在你源码的目录下打开 git bash 就可以看到你以前下的是哪个分支pull 之后就会跟新你这边的源码和远程仓库同步。
重新编译
cmake vs , 如果编译过程复杂的话不建议直接删掉你原先的build目录下东西,先试一下不删然后编译,就相当于打补丁了。 当然也有可能这样操作编译通不过等情况,这个就酌情考虑了。
需要注意的一个下载问题:
在下载源码的时候,还有一种下载方法就是直接下载了源代码的压缩包,然后下下来直接解压缩就用了。
这样的话,大概率是不能进行 pull 操作的, 首先注意到的就是目录下根本没有 .git 这个隐藏文件夹,这里面记录了一些你这边源码和远程仓库代码的联系吧。可以通过下面的命令生成这个文件夹:git init
但是有可能还是无法 pull 会报 permission denied(publickey) 之类的错误, 这种时候果断删掉源码重新去git clone 吧。