搜尋

首頁  >  問答  >  主體

使用Git如何查看即將被push上去的程式碼差異

這個問題的使用場景

例如你在本地修改了程式碼,提交了20多次。現在你要將這些程式碼push上去了,你想再檢查一下程式碼,但你需要統計一下,這20次commit一共修改了哪些檔案?每個文件分別修改了哪些地方?

在這個時候,你就需要用到這個指令了,能輕鬆查看,所有修改的檔案清單和差異。

求大神解答

最好告知兩種形式:

  1. 列出所有修改文件列表,但不顯示差異。

  2. 列出所有修改文件列表,並且顯示出所有的修改差異。

漂亮男人漂亮男人2793 天前863

全部回覆(6)我來回復

  • 怪我咯

    怪我咯2017-05-02 09:25:16

    這是我目前找到最適合的答案:

    git diff origin/分支名...HEAD
    git diff origin/分支名...HEAD --name-status

    莫名奇妙被踩了一下,也不知道是誰踩的,希望站出來,有本事提供更簡單易用的答案,回答不上來就亂踩別人,這是什麼心理?

    回覆
    0
  • ringa_lee

    ringa_lee2017-05-02 09:25:16

    git log 可以指定時間範圍、起止 commit、檔案路徑、分支/標籤等等條件,並且可以對輸出結果進行篩選,輕鬆滿足你的第一個要求。

    git show 或者 git diff 都能滿足你的第二要求,使用的參數會有差異。

    具體的命令我就是任性不說,自己看文檔吧。

    不過我可以奉送一個trick,如果你認為commit 的跨度是問題,你完全可以新建一個臨時分支,然後往前進行interactive rebase (squash all commit)一直到你要比較的初始commit,這樣一來你需要比較的commit 就只有兩個了,一個是起點,一個是包含了後續n 的commits 的總和。

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-02 09:25:16

    其實我覺得下載一個Github的客戶端吧,用起來很直覺很方便的,最近更新了,新增專案的工作流程的圖,我用的是windows版的,Mac版不了解囉…

    回覆
    0
  • 迷茫

    迷茫2017-05-02 09:25:16

    文件差異還是用客戶端吧....sourceTree

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-02 09:25:16

    git diff commit1 commit2 --name-status
    git diff commit1 commit2

    回覆
    0
  • 为情所困

    为情所困2017-05-02 09:25:16

    已commit內容比較見 @910JQK 的回答

    未commit但已經add的內容可以用 git diff --cached

    回覆
    0
  • 取消回覆