进入到本地仓库的目录

1、查看自己远程仓库的路径:git remote -v 


git 在主仓库下同步子仓库的操作 git如何同步别人仓库_linux


插曲1:使用git remote -v操作时,出现:fatal: Not a git repository (or any of the parent directories): .git

原因:没有.git这样一个目录(本人没有在已含有.git目录下执行该命令,对于一个刚接触git操作且什么都不懂的小白,原谅我犯了这么一个低级错误~)。

解决办法:如果和我一样原因导致的,直接在原来已含有.git目录下打开git bash窗口执行该命令,若是原来没有.git目录,则git init就可以了。

2、设置upstream,即上游代码库,也就是配置源仓库的路径:git remote add upstream URL(源仓库的地址)

git 在主仓库下同步子仓库的操作 git如何同步别人仓库_git_02


再执行git remote -v 查看是否成功


git 在主仓库下同步子仓库的操作 git如何同步别人仓库_git_03


3、执行git status 查看本地是否有修改未提交。如果有,先将本地的有效修改从本地仓库推送到自己的GitHub/gitlab仓库,最后再执行一次git status 查看最终有无未提交的修改。(如果确定没有修改的,此步可省略)

git add filename
git commit -m "your illustration"
git push origin master
git status

4、抓取源仓库的修改更新文件:git fetch upstream(后面几步忘了截图。。。)

插曲2:最初我克隆项目(指的是fork后自己名下仓库中的项目)的时候是使用git clone git@XXXX,导致在执行该命令时出现了ssh: connect to host iliad.vicp.net port 22: Connection timed out。

解决办法:网上查了一下,有多种解决方案,在这里,我选择了一个对于我而言最简单的一种办法,那就是删除原来克隆的项目,重新克隆项目时使用git clone http://xxxx,不使用git clone git@

5、切换到master分支:git checkout master

6、合并远程的master分支:git merge upstrem/master。执行到此步时有可能跳出如下界面:


git 在主仓库下同步子仓库的操作 git如何同步别人仓库_github_04


可以不用管,按键盘上的"ESC"键,然后输入:wq,按回车键即可。

此时,自己的本地库已经和源仓库已经完全同步了。但是此刻只是自己电脑上的本地库和远程的gitlab源仓库同步了,自己的gitlab仓库(fork后自己名下的仓库)还没有同步,此时需要使用“git push”命令把本地的仓库提交到gitlab中。

7、把本地仓库向gitlab仓库(fork到自己名下的仓库)推送修改:git push


git 在主仓库下同步子仓库的操作 git如何同步别人仓库_linux_05


emmm~此刻就已经完成了与源仓库的更新同步。