操作系統:ubuntu 16Git如何更新本地存儲庫並保留我的更改
我使用git clone來複制遠程存儲庫到我的本地機器。 我做了一些改變(通過納米)在一些代碼可以說5-10個文件(存儲庫有2000多個文件,我認爲)。
但現在這個存儲庫得到了一些不錯的更新。我想獲得所有這些更新,但我想保留我的自定義更改。我不能承諾這個存儲庫,因爲我相信我的代碼和修復是「壞」,並不完美。
我應該使用哪個命令來獲取所有更新並將更改保留在文件中?
操作系統:ubuntu 16Git如何更新本地存儲庫並保留我的更改
我使用git clone來複制遠程存儲庫到我的本地機器。 我做了一些改變(通過納米)在一些代碼可以說5-10個文件(存儲庫有2000多個文件,我認爲)。
但現在這個存儲庫得到了一些不錯的更新。我想獲得所有這些更新,但我想保留我的自定義更改。我不能承諾這個存儲庫,因爲我相信我的代碼和修復是「壞」,並不完美。
我應該使用哪個命令來獲取所有更新並將更改保留在文件中?
最簡單的方式(如果你正在使用的分支上要更新):
git stash
git pull
git stash pop
另一種選擇是創建另一個分支,以保持您的更改:
git checkout -b my-new-branch
git add .
git commit -m "my changes"
git pull --rebase origin master # this will get the updates and place your changes on top of it
在展臺方法你可能會發生衝突,解決它們你可以使用:
git mergetool
一種選擇是藏匿您的工作目錄(以及可能的階段),拉的更改,然後再應用已藏匿:
git stash
git pull origin master # or whatever the branch name is
git stash apply
這應該離開你大概你在之前的狀態拉動新的變化。我說「粗略」,因爲應用隱藏可能會導致合併衝突。如果您所做的更改與上次同步後對回購所做的更改發生衝突,則此類衝突可能無法避免。
如果您擔心失去您的工作,那麼我會建議在您的更改中創建一個支行。爲此,您可以嘗試:
git stash
git checkout -b safe_branch
git stash apply
git commit -m 'my work'
然後,您可以嘗試合併或重新綁定原始遠程分支上的此分支。假設你想合併,你可以嘗試:
git fetch origin
git checkout safe_branch
git merge master # or whatever the remote branch is called
現在你有一個真正的提交包含你的工作分支。在這個更安全的設置中失去你的工作真的很難。
謝謝,我做了「git stash git pull git stash pop」看起來像它可以完美地在小的版本庫上進行「小」更改。 – Amaroc