[譯]git fetch


git fetch從遠程倉儲導入commit到你的本地倉儲. 這些fetch到的commit是做為一個遠程分支存儲在你本地的. 這樣你可以在集成這些commit到你的項目前先看看都有些什么修改.

 

用法

git fetch <remote>

獲取遠程倉儲所有的分支. 

 

git fetch <remote> <branch>

獲取遠程倉儲指定的分支

 

討論

當你想看看其他人都做了些什么工作的時候你可以使用fetch. 因為fetch到的內容是做為一個remote分支的形式展現出來的, 所以不會對你的本地開發有什么影響. 因此fetch是在你想merge遠程的commit前, 先來查看查看這些commit的一個安全的辦法. 他不回強迫你merge.

遠程分支

遠程分支類似於本地分支, 不同點在於他們代表是其他人的倉儲的分支. 你可以checkout一個遠程分支, 當你checkout一個遠程分支的時候, 你處於一個detached HEAD的狀態(就如checkout 一個老的commit). 你可以把他想象成是一個只讀的分支. 想要查看遠程分支, 只要在git branch的后面加上一個-r標記. 遠程分支的前綴是remote這樣就不會和本地分支混淆了. 下面的例子演示怎么查看遠程分支:

git branch -r
# origin/master
# origin/develop
# origin/some-feature

如果你覺得遠程分支的一些修改沒問題你可以使用git merge把他們merge到你的本地分支. 和svn不一樣, git同步遠程的倉儲需要兩步:fetch和merge. git pull命令是這一個git fetch加git merge的更簡便的寫法.

 

例子

下面的例子演示了同步你本地倉儲和遠程倉儲的典型工作流.

git fetch origin

運行后會顯示哪些branch被下載下來了:

a1e8fb5..45e66a4 master -> origin/master
a1e8fb5..9e8ab1c develop -> origin/develop
* [new branch] some-feature -> origin/some-feature

在下圖中遠程分支的commit是矩形的, 本地的是圓形的.

為了查看哪些commit被添加到了上游master, 你可以運行git log 另外加上origin/master做為過濾器

git log --oneline master..origin/master

  

批准遠程分支的修改並merge到我們的本地master分支可以使用如下的命令:

git checkout master
git log origin/master

然后開始merge

git merge origin/master

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM