由于我自己的疏忽,我正面临这个问题。
情景:
我有两个分支master
和branch1
。从一开始他们没有任何.gitignore
文件(这是我的大错)。现在branch1
的状态为
这个分支提前12次提交,4次提交主人。
每当我pull master
进入branch1
时,我在许多文件中都存在冲突,这些文件应该在.gitignore
文件中(例如*.unwantedFileExtensions
)。我尽力解决冲突,但是当我尝试构建程序时,它会抛出异常/错误。
之后我明确地将.gitignore
文件添加到两个分支中以忽略所有*.unwantedFileExtensions
个文件,但在合并时我仍面临相同的冲突文件。
我几乎被困在这里。有谁知道如何解决这个问题?
答案 0 :(得分:1)
签出每个分支,在.gitignore
中添加要忽略的文件,同时删除这些文件。然后在每个分支中暂存并提交.gitignore
和已删除的文件。
之后,您可以合并两个分支,不再存在不需要的文件冲突。
因此:
git checkout master
rm -rf *.unwantedFileExtensions
echo "*.unwantedFileExtensions" >> .gitignore
git add .gitignore *.unwantedFileExtensions
git commit -m "removed unwantedFileExtensions"
git checkout branch1
# repeat the steps above from branch master for this branch
git merge master
答案 1 :(得分:0)
gitignore"明确指定要忽略的未跟踪文件。"
您的文件已被跟踪; gitignore没有追溯性的工作。它只忽略 new 文件。
首先引入冲突,根据需要合并它们,然后提交合并。
git pull
git commit -a
现在我们与主人达成了最新动态,让我们让git忘记那些被忽略的文件。 Git会认为这些文件已被删除,但它们仍然可以在本地使用。然后,我们将不再提供跟踪这些文件。
git rm -r --cached .
git add .
git commit -m "Fix untracked files"
现在,branch1与master保持同步,并在正确保留文件的同时正确忽略这些文件。