私はGit:masterとreleaseに2つのブランチを持っています。リリースブランチにはマスターで使用されていないファイルがいくつかある点を除けば、ほとんど同じファイルを持っています。私がリリースからマスターに切り替えるたびに、チェックアウトを行う前にそれらのファイルを手作業で削除する必要があります。Git - ブランチ間の相違をローカルで削除する
gitがスイッチを実行しているときにこれらのファイルをローカルで削除できる方法はありますか?
LE:gitの
私はGit:masterとreleaseに2つのブランチを持っています。リリースブランチにはマスターで使用されていないファイルがいくつかある点を除けば、ほとんど同じファイルを持っています。私がリリースからマスターに切り替えるたびに、チェックアウトを行う前にそれらのファイルを手作業で削除する必要があります。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が処理するファイルが表示されます。あなたはmaster
に支店master
と
、おそらく
file
が人跡未踏ことでブランチrelease
にあり、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
ここで最も重要なことは、からファイルを削除するだけでなく、ファイルシステムを削除するだけでなく、ファイルをブランチからに削除します。
とプリントスクリーンはあなたは、その目的のためにgitignore
を使用することができます。 参考:https://git-scm.com/docs/gitignore
私はそれらを無視することができますが、私はそれらのファイルを削除したいと思います。 – RBA
@MartinNyolt - 印刷画面を追加しました。今はもっと明確にすべきだ。 – RBA
将来:重要な情報だけがエラーメッセージである場合は、スクリーンショットをアップロードしないでください。代わりに、単にエラーメッセージをテキストとして貼り付けます(適切な書式設定を使用して)。 –