我意識到我可以使用git update-ref
to fast-forward existing branch that I am not on。然後我發現類似的事情可以通過git branch -f
完成。我知道git update-ref
更靈活(它可以移動任何參考),however it could be dangerous。那麼使用git branch -f
更好嗎?這兩個命令在這些特定場景中是否有區別? (除的,我可以指定自定義參考日誌信息。)使用git branch -f或git update-ref來快速提供現有分支會更好嗎?
回答
隨着git branch -f
,它會拒絕更新分支,如果它是一個簽出(所以如果是「當前分支」)
git update-ref
沒有這個限制。
Qqwy增加了另一個區別in the comments:
git branch -f <branchname> [<start-point>]
會創建一個名爲<branchname>
如果不存在,新的分支。git update-ref <branchname> <newvalue>
在這種情況下什麼都不會做。
似乎'update-ref'不提供'branch -f'的相同的自動完成功能。是否有可能改變git的行爲來爲'update-ref'創建相同的體驗? – 2014-11-07 08:57:22
@Zeeker會是一個很好的單獨問題:我沒有在這些命令的自動完成部分中看太多。 – VonC 2014-11-07 09:27:41
我問過[另一個問題](http://stackoverflow.com/questions/26798130/expand-gits-autocomplete-feature-to-plumbing-commands)。 – 2014-11-07 09:33:25
- 1. git merge或rebase for stale branch?
- 2. 有沒有一種快速的方法來從點或分支來源「git diff」?
- 3. git branch -f和git checkout在一個步驟中
- 4. 遠程git分支與`git branch -r`沒有顯示?
- 5. 如何恢復'git filter-branch -f --env-filter'
- 6. git add remote branch
- 7. git快速導入特定分支
- 8. 遠程分支沒有出現在「git branch -r」中
- 9. Git Branch Follow Master
- 10. git分支(沒有分支)
- 11. 使用LibGit2Sharp的git show-branch
- 12. git filter-branch困惑
- 13. 在git中使用release分支總是更好嗎?
- 14. 有沒有更好的方法來恢復git-svn分支?
- 15. 的Git分支-f與軟復位
- 16. 這是做什麼的:git分支-f
- 17. 的Git分支沒有表現出如提前起源提交
- 18. git checkout --track origin/branch和git checkout -b branch branch/branch之間的區別
- 19. Git:刪除-f和--force分支
- 20. git push branch without merge
- 21. 的Git分支VS提交
- 22. 使用git filter-branch和signed commit提供的意外行爲
- 23. git分支撤消提交
- 24. git branch for multiple remotes
- 25. git svn master to branch to master - 仍然試圖提交分支
- 26. 如何在git中快速轉發其他跟蹤分支?
- 27. Git不會提交分階段更改
- 28. git中現有項目的新分支?
- 29. 使用git兩個分支
- 30. git:分支變化時快速切換的鉤子?
僅供參考:即使使用'update-ref',也不存在實際丟失提交的危險,正如您鏈接到的答案中所述。提交將仍然存在,您可以輕鬆恢復它們。 – 2014-11-05 12:38:40