我在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
未来:如果他们只有重要的信息是错误信息,请不要上传屏幕截图。相反,只需将错误消息粘贴为文本(使用正确的格式)即可。 –