簡體   English   中英

git獲取並拉

[英]git fetch and pull

在這里,我們正在將源代碼遷移到github,而這一交易讓我頭疼:)
我做了什么:我去了我們的工作區(一個Eclipse項目),並做了git initgit add . 然后git commit -am "first commit"
一切正常,然后,我將其推送到github。 也成功。
但是有一個大問題:我的朋友剛剛對名為A.java的文件進行了更改,而我剛剛對B.java了更改。 好吧,沒什么大不了的。 然后,他將其推送到github。 當我嘗試推動時,我的推動被拒絕。 好的,我做了一個git pull github master ,然后再次推送,現在,我的“提交消息”變成Merge branch 'master' of github.com:germantech/projectName
好的,我在做什么錯?
ps:對不起我的英語

您沒有做錯任何事-執行git pull github master ,git轉到遠程github指示的存儲庫,獲取master分支所需的所有內容,然后將其合並到當前分支中。 拉動之前,您具有以下歷史記錄:

O --- A (master)

...其中O是帶有消息“ firts commit”的提交,而A是將更改引入A.java的提交。 同時,您的朋友有以下歷史記錄:

O --- B (master)

...並且已經推送到GitHub。 當您的git pull github master將其合並到您的歷史記錄中時,它將創建一個“合並提交”以使用兩個master分支的更改來表示樹的狀態:

O --- B --- M (master)
 \         /
   ---A ---

相反,如果您希望保持歷史記錄的線性,則可以執行git pull --rebase github master ,它將“重放”不在該分支的遠程版本中的,位於該版本的刪除版本之上的提交。分支:

o --- B --- A' (master)

有些人更喜歡-我個人不在乎。

您是在同一倉庫中還是在不同倉庫中? 如果您需要重新設置更改並再次推送

git pull --rebase github master
git push github master

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM