Github Fork 记录

今天是我参加掘金翻译计划的第一次翻译,之前是做了一篇校对,就是review一下其他翻译者翻译的文章,看看有没有一些细节问题,现在终于轮到我上手了,因为我对github没有过太深入的了解,之前只会一些简单的命令,所以刚开始就遇到了问题。


因为我是在很早之前就fork了掘金翻译计划的仓库,我本来以为拿到翻译认领之后就可以直接上手了。谁知道当我查看我自己fork的仓库的时候,发现没有我需要翻译的文章的那个文件,但是在原仓库中是有的。弄了半天也没有在我的仓库中找到那个文件,然后我就去问老大,他说可能是你之前fork了仓库,所以没有显示最新的文件,他让我同步一下仓库。同步?我一听就懵逼了。什么是同步,难道是再从新fork一下,可是我发现我重新fork并没有什么卵用。然后我就开始查资料,先是研究了一下什么是同步,我该怎么同步。接下来我就说说我是怎么弄得。


首先,我需要在bash命令行下把我在github上的仓库clone下来(就是之前我从原仓库fork的那个仓库)。

git clone https://github.com/GiggleAll/gold-miner.git

clone完成之后会默认在远程仓库哪儿加一个origin这个东西。你可以用命令git remote -v 来查看,你就会在下面看到一个 origin 以及他的仓库地址。

git remote -v
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

但是因为你是fork别人的仓库,所以你还需要在 remote 里面加这个远程仓库的地址 git remote add upstream https://github.com/xitu/gold-miner.git 添加完了之后你可以用 git remote -v 来查看一下是否添加上了。

git remote -v
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

下一步你就需要 fetch upstream 这个远程仓库中的内容了。git fetch upstream 。大体运行结果是下面这个样子的。

$ git fetch upstream
remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
 * [new branch]      master     -> upstream/master

下一步你需要切换到master分支

git checkout master
Switched to branch 'master'

现在你看当你执行 git fetch upstream 的时候最下面的一句提示 * [new branch] master -> upstream/master 所以你需要 merge 刚才获取到的更新文件,所以执行 git merge upstram/master 让他来更新你本地仓库的文件,命令执行效果大体如下:

git merge upstream/master
Updating a422352..5fdff0f
Fast-forward
 README                    |    9 -------
 README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md

现在你本地的仓库以及更新到原仓库最新的文件了,如果你想把你github上的内容也一并更新了的话,那么用 git push origin master 就好。至于你想更新到哪个分支上的话,你查一下 git push 命令的用法就好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章