欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Git pull命令與fetch命令的區(qū)別

 更新時間:2017年03月10日 08:51:29   作者:EthanPark  
這篇文章主要介紹了Git pull命令與fetch命令的區(qū)別的相關(guān)資料,需要的朋友可以參考下

Git pull命令與fetch命令的區(qū)別

今天在公司碰到個問題,公司不使用master分支作為主分支,而使用release分支作為主分支,這就碰到了個問題,也就是當(dāng)clone一個項目下來的時候,如果master跟release分支有沖突,就不能pull了,自己還要解決沖突。

剛下一個項目,也不懂沖突到底怎么回事,也就很難搞了。

這個時候,就不得不提Git的兩個命令,git fetch和git pull

Git中從遠(yuǎn)程的分支獲取最新的版本到本地有這樣2個命令:

Git fetch

git fetch:相當(dāng)于是從遠(yuǎn)程獲取最新版本到本地,不會自動merge

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含義:

首先從遠(yuǎn)程的origin的master主分支下載最新的版本到origin/master分支上

然后比較本地的master分支和origin/master分支的差別

最后進(jìn)行合并

上述過程其實可以用以下更清晰的方式來進(jìn)行:

# 將遠(yuǎn)程release分支拉到本地的releaselocal分支
git fetch origin releaser:releaselocal

# 切換到tmp分支
git checkout releaselocal

這樣也就解決了這個問題,之后master分支刪除掉,直接從releaselocal創(chuàng)建master分支,這樣所有的分支都跟遠(yuǎn)端的release分支同步了。

Git pull

git pull:相當(dāng)于是從遠(yuǎn)程獲取最新版本并merge到本地

git pull origin release:release

上述命令其實相當(dāng)于git fetch 和 git merge

這個命令其實不太靠譜,如果本地沒有release分支的話,會自動根據(jù)當(dāng)前分支branch一個release分支,然后來執(zhí)行pull操作,所以不太靠譜

所以我通常的做法是保留本地的master分支不進(jìn)行任何commit,然后通過master分支來進(jìn)行切換,這樣在master分支上是clean的,然后通過之前的命令就不產(chǎn)生沖突了

之后在release分支上進(jìn)行merge操作,安全很多。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論