有人可以幫助我填寫缺少的部分到我正在編寫的腳本中嗎?我剛剛意識到我有一個公共存儲庫,其中包含對我從未推送到源的子模塊中的提交的引用(提交在推送前重新組織)。我不知道發生了多少次,但我想找出並創建臨時分支以推動起源。查找從未推送到公共存儲庫的子模塊提交
所以,回到腳本。我知道,我能得到所有提交的清單,修改了自己的子模塊,這我可以grep
過濾和使用cut
從my_submodule
得到實際的SHA1標籤:
git log -u origin/master -- my_submodule \
| grep "^\+Subproject" \
| cut -d" " -f 3
在這一點上,我有20個標籤和我只是用一個文本編輯器來創建一個腳本,用「tag_00xx」手動標記每一個腳本。然後我在Git Extensions中手動檢查存儲庫,並刪除了任何使其成爲origin/master的提交標記,並留下了從未推送的標記。
我應該怎麼做才能創建不屬於origin/master的提交標籤?我知道我可以這樣做:
git branch -r --contains <commit_sha1>
但是,這並不設置退出代碼我可以用它來選擇創建新的標籤。我怎麼能完成我的任務的自動化?
感謝Mark,對於這樣一個徹底的答案,它結合了一些高級的shell腳本和對git的更好的理解,而不是我所擁有的......我也很欣賞關於使用分支而不是標籤的注意事項。 – tomlogic