我在Git中擁有2個分支:master和release。他們有幾乎相同的文件,除了發佈分支有一些文件不在master中使用。每次我從發佈版本切換到主版本時,我都需要在完成結賬之前手動刪除這些文件。Git - 刪除本地分支之間的差異
有沒有辦法讓git在執行切換時可以在本地刪除這些文件?
LE:用git
我在Git中擁有2個分支:master和release。他們有幾乎相同的文件,除了發佈分支有一些文件不在master中使用。每次我從發佈版本切換到主版本時,我都需要在完成結賬之前手動刪除這些文件。Git - 刪除本地分支之間的差異
有沒有辦法讓git在執行切換時可以在本地刪除這些文件?
LE:用git
假設file
僅在分支release
你想要的文件,而不是在master
。 你必須確保
file
簽入release
和file
是不住進master
對於參考,我的方法的工作原理:
$ git init
Initialized empty Git repository in /tmp/testgit/.git/
$ touch a
$ git add a
$ git commit -m "master - a"
[master (root-commit) cf1ffcc] master - a
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
# Only file a is present now
$ ls
a
# switch to release branch and create file
$ git checkout -b release
Switched to a new branch 'release'
$ touch file
$ git add file
$ git commit -m "release - add file"
[release 57da037] release - add file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file
# both files are present:
$ ls
a file
# checking out master again
$ git checkout master
Switched to branch 'master'
# "file" is not present
$ ls
a
我想你的問題是,file
實際上是master
而不是release
(但應反之亦然)。 通過運行git ls-files
來確認這一點,它顯示了git需要處理的文件。
在這種情況下,可能
release
與file
是未經跟蹤,master
和master
,file
由git的跟蹤,因此您當前未跟蹤的文件將通過結帳而丟失。在這種情況下,你可以通過刪除主文件解決您的問題,而是把它添加到發佈:
git checkout release
git add file && git commit
git checkout master
git rm file # also remove from branch master, not only file system
git commit
這裏最重要的是不僅要刪除的文件文件系統,但也可以從master
分支中刪除該文件git。
@MartinNyolt - 我添加了一個打印屏幕。現在應該更清楚了。 – RBA
未來:如果他們只有重要的信息是錯誤信息,請不要上傳屏幕截圖。相反,只需將錯誤消息粘貼爲文本(使用正確的格式)即可。 –