2017-08-10 79 views
0

我有兩個目標,我需要一個工作流程來實現他們,同時處理我的功能(主人是企業github回購)。保持git分支更新的推薦工作流程

目標:

  • 保持我的分支最新

  • 能夠看到我做了使用git diffgit show

我是新來github上的變化,但我嘗試了幾個場景來實現這一點,他們不幫助我。

最初,我創建了一個新的分支(跟蹤起源/主),我做了代碼更改。

我承諾修改並使用git push origin將此更改發佈到github上。

然後我創建一個PR,讓別人評論。

我收到了很好的反饋,我做了代碼更改並在第一次提交之前提交。

如何讓我的分支與原點/主點保持同步?

我試圖通過合併git pull來更新我的本地分支。它還行,但現在如果我做git show我不會看到我的變化,我會看到最新的主提交。

我試圖通過git pull --rebase來重新更新我的本地分支。我可以使用git show來查看我的更改,但是我的本地和遠程分支不同步,我必須使用git push origin -f來更新我的github PR並進行第二次更改。

我很樂意提供建議,謝謝!

+1

你提到的一切聽起來都是正確的。如果你唯一的問題是如何查看一個文件的差異從一個提交到另一個提交,我可以推薦你爲你的IDE獲得一個Git插件嗎?例如,IntelliJ做了一件很棒的工作,可以讓你將文件與同一分支中的任何提交進行比較,甚至針對其他分支進行分析。比命令行好得多。 –

+0

答案能幫助你解決問題嗎?如果是,您可以將其標記爲答案。它會幫助其他有類似問題的人。 –

回答

1

你在做什麼是正確的做法。 pullpull --rebase之間有很大的差異。它會做git fetch && git merge origin/master resp。 git fetch && git rebase origin/master。他們都是正確的做法。不同之處在於樹歷史,在大多數情況下,公司策略是寧願使用。

隨着債券,你將永遠改變歷史,並將需要強制推動。通過合併,您不會更改歷史記錄,但上次提交是合併。

不要指望你將只有一個提交將被推送,所以差異不應該只爲一個提交,而是整個分支。如果你只需要看到的差異,你可以運行:

git show HEAD~1 

或 混帳顯示HEAD〜4..HEAD〜1

看到在過去幾年提交的所有更改,除了最後一個(合併)。

或者你可以嘗試這樣的事情

git diff --boundary HEAD~1..origin/master 

P.S:變基,當越來越多的人在同一個分支上工作力推可以是相當危險的。只有當你確定你是唯一在分支上工作的人時纔會推動。

評論也可能存在一些問題。不確定Github如何,但Gitlab在強制推送後不會顯示完全更改或刪除的行的註釋。