[英]How to get updated branch for a git repo?
我正在嘗試提出一系列git命令,這些命令將更改為預先存在的git repo中的一個已知分支。 我知道的三件事是:
origin
存在 這就是我在做什么:
git clean -xfd
git reset HEAD --hard
git add --all; git stash; git stash drop
git fetch origin
git checkout -B $BRANCH
git pull origin $BRANCH
這是實現此目標的最少的git命令集嗎? 是否有任何情況下這些命令序列將失敗?
因此,您的想法是您當前的結帳可能處於完全垃圾回收的潛在惡意狀態,而您想完全放棄它嗎?
git fetch
git checkout -f -B branch origin/branch
git clean -dfx
如果沒有子模塊,這就是您想要的。 如果這樣做,核選項是
git read-tree --empty
git clean -dffx # <-- two f's, forces submodule removal
git fetch
git checkout -B branch origin/branch
git submodule update --init
(編輯:從find -exec rm切換到read-tree / clean)
不要為此使用git pull
,它會進行提取,然后將提取的歷史記錄合並到您當前的結帳中。 首先執行git checkout -B branch
只是標記您當前的checkout branch
,因此該操作和拉取的結果與切換到原點的分支相距很遠。
您可以使之更簡單:
git fetch --all --prune
git pull origin <branch>
如果您正在執行git reset --hard
,則不需要git stash
因為您的工作目錄將被清除
git reset HEAD --hard
get reset --hard
重置索引和工作樹 。
由於對工作樹中跟蹤文件的任何更改,都將被丟棄。
我要撤消在此文件夾內進行的任何臨時(暫存或暫存)更改。
無需這樣做,因為除非您明確添加所有未提交的內容,否則不會將其添加到您的分支中
不過,如果您要清除當前工作目錄
# small x
git clean -xfd
# capital x
git clean -Xfd
-x
不要使用從.gitignore(每個目錄)和$ GIT_DIR / info / exclude讀取的標准忽略規則,但仍要使用-e選項提供的忽略規則。 這允許刪除所有未跟蹤的文件,包括構建產品。 可以使用它(可能與git reset結合使用)創建原始工作目錄以測試干凈的構建。
-X
僅刪除Git忽略的文件 。
這對於從頭開始重建所有內容很有用,但保留手動創建的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.