我是第一次使用 Git。我克隆了一個專案,我正在一個分支上進行一些更改……但是,這些更改必須暫停。因此,在暫停期間,我想為同一個專案開發另一個功能。此新功能的更改不會影響在第一個分支中修改/創建的檔案,它們位于同一專案的另一個目錄中。
目前,如果我創建一個新分支,我會看到第一個分支的更改也出現在新分支上...
使用 Git(和正確的命令)執行此操作的正確方法是什么,不會引起沖突并且僅在其各自的分支中更改每個功能?
編輯1:
對不起,如果這聽起來像一個愚蠢的問題,但我不想弄亂專案存盤庫......這對我想要做的事情有用嗎?:
- 從我的主人創建第二個分支。
- 簽出我的第二個分支后,我對第二個功能進行了更改,并且僅暫存并將這些新更改提交到第二個分支(使用 git add <folder contains only 2nd feature changes>)。
- 當我能夠恢復我的第一個功能時,我應該檢查我的第一個分支,完成我的更改,并且只暫存和提交這些更改(使用 git add <folder contains only 1st feature changes>)。
這有意義嗎?
uj5u.com熱心網友回復:
在我看來,這是可以嘗試的。
讓我們假設你現在在feature_1分支上作業。對代碼進行更改后,提交或隱藏它。
git fetch --all
git checkout -b feature_1 origin/<remote_branch_you_want_to_track>
<<do your code changes>>
git status
git add <files>
git commit -m "commit_msg"
現在您可以暫停它并開始處理另一個功能,例如feature_2。這里有爭議的問題是你的基礎feature_2應該是什么。如果它與您創建feature_1. 如果是,那么
git checkout -b feature_2 origin/<remote_branch_you_want_to_track>
為 做你的作業feature_2。如前所述添加和提交。
這將確保 feature_1 和 feature_2 都是從遠程跟蹤分支的相同基礎創建的,并且您可以在分支之間切換
始終提交您的代碼。您始終可以將檔案添加到現有提交或創建新提交或將多個提交壓縮在一起。
將檔案添加到現有提交
git add <left_out_file>
git commit --amend --no-edit (provided you don't want to edit the commit message)
如果你想藏起來,總是在藏匿處添加一條訊息,這樣你就不會迷失在藏匿處
git stash save "a meaning message for what you are stashing"
如果您想檢查您的feature_1和feature_2正在跟蹤哪個分支,請運行
git branch -vv
uj5u.com熱心網友回復:
不引起沖突
首先,您需要停止擔心“沖突”。合并的作業方式就是它的作業方式。不要試圖猜測你自己(或 Git)。
所以你的問題的答案很簡單:
[working on branch1]
git add .
git commit -mwip
git switch master
git pull
git switch -c branch2
[work on branch2]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/368843.html
標籤:混帐
下一篇:Git看不到影像的細微變化
