2016-07-18 68 views
1

是否有一些快捷方式指定從遠程追蹤分支提取的新提交的時間間隔?是否有一個git命令在提取後顯示新的上游提交?

git log branchName..origin/branchName 

我要尋找一些git的間隔劈,將代表branchName..origin/BRANCHNAME,像(不能正常工作,間隔相當於git的日誌:如果不輸入這個很長的命令,這也是有分行的具體的..origin/HEAD)

git log ..origin 
+0

你的問題是:當新的提交執行,顯示日誌?我認爲這個依賴你的編輯器。找到像'git log'或'git history'這樣的擴展名。您可以在Visual Studio代碼中看到'git history':https://github.com/DonJayamanne/gitHistoryVSCode和Atom:https://atom.io/packages/git-history – vanloc

+0

您可以設置一個別名來執行fetch&登錄。請參閱https://stackoverflow.com/questions/7534184/git-alias-multiple-commands-and-parameters。 – Melebius

+0

我正在尋找一些類似的間隔快捷方式 - 這完全是由我發明的 - 「git log ..origin」... – kasi

回答

3

這將做你想做的,只要你有配置爲您的分支遠程跟蹤:

git log [email protected]{u} 

它會顯示所有的remotes/branch這是不是已經在你的本地branch的提交。如果你也想看看哪些還沒有推你的本地提交,使用三個點:

git log [email protected]{u} 

或者,如果你想看到還沒有被推爲只能在本地提交你最後的取,放兩點@{u}後:

git log @{u}.. 

說明:

  • @{u}是簡寫`HEAD @ {上游}
    • [email protected]{upstream}意味着我的本地「主」分支的遠程跟蹤分支。[email protected]{upstream}origin/master相同如果您的master分支正在跟蹤名爲origin的遠程名爲master的遠程分支。
    • 如果您省略分支名稱(例如,master),則使用當前分支。
    • upstream在這種情況下可以縮寫爲u。因此,如果您當前的分支名爲master,則@{u}[email protected]{upstream}相同。
  • ..用於指定提交範圍。
    • A..B相同^A B這意味着告訴我B中的所有提交,但不包括那些在A.它也可以寫B --not A
    • 如果您忽略任一參考文獻,例如A....B,那麼省略的參考文獻推測爲HEAD
  • 你可以看到你的上游跟蹤被配置爲與git rev-parse --symbolic-full-name @{u}
  • 您可以git branch --set-upstream-to=origin/master

明確設置你的上游追蹤,您可以瞭解更多關於在Git man pages修訂規範這樣的細節:

git help revisions 

或者

man gitrevisions 
+0

非常感謝。這正是我想要的,只是我不明白,爲什麼我對這個問題有負面的聲譽...... – kasi

1

這也許是不是一個答案,而是你可以申請,以避免重新輸入一遍又一遍同樣的事情,一個解決辦法很長的評論。

你可以寫自己的別名,請參閱下面

git config --global alias.branchlog \ `log branch..origin/branch` 

alias.<name>例子 - 不管你更換<name>等,只要你能記住。你可以調用這個函數是這樣的:

git branchlog 
+0

不完全是我在找的東西,看我編輯的問題 – kasi

+0

我很遺憾聽到這個消息,我恐怕我不知道如何簡化這個操作。看看其他人可能發佈的內容會很有趣 –

+0

無論如何,感謝您的時間,如果可以使用一些簡單的git方法,我也非常希望獲得信息。 – kasi

0

我沒有測試過這一點。

  1. 使用以下命令創建bash文件:git log $1..origin/$1。將它命名爲任何你喜歡的(我稱之爲foo.sh)。

  2. 確保它可執行:chmode +x foo.sh

  3. 運行git的命令:git config --global alias.branchhistory '!./path/to/foo.sh'

現在,您可以試試如下:git branchhistory master

相關問題