2

マスター git ブランチに「Readme」というファイルがあります。ファイルには次のテキストがあります。

これはマスターブランチです

「justatest」というトピック ブランチを作成し、その中の「Readme」ファイルを編集しました。このファイルを (justest ブランチがチェックアウトされている間に) 次のように編集しました。

これはマスター ブランチです このテキストは「justatest」ブランチでのみ表示されます

「justatest」トピック ブランチにいるときは正しく表示されますが、マスター ブランチに切り替えると、ファイルには次のように表示されます。

これはマスター ブランチです このテキストは「justatest」ブランチでのみ表示されます

ご覧のとおり、トピック ブランチをチェックアウトした場合でも、マスター ブランチに変更が加えられています。どうして???

最悪の部分は、トピックブランチで行った変更が気に入らず、それを削除すると、マスターブランチに変更が残ることです!! その安全性はどこにありますか?

4

2 に答える 2

1

トピック ブランチで変更をコミットした場合、マスター ブランチをチェックアウトすると、変更をマスターにマージするまで、変更がトピック ブランチでのみ表示されることがわかります。

例:

[matthewh@folio temp]$ git branch
* master
[matthewh@folio temp]$ cat Readme 
This is the master branch
[matthewh@folio temp]$ git checkout -b justatest
Switched to a new branch 'justatest'
[matthewh@folio temp]$ echo "This text should only be seen in the justatest branch" >> Readme 
[matthewh@folio temp]$ git commit -am "Modified readme"
[justatest 1afc6c7] Modified readme
 1 files changed, 1 insertions(+), 0 deletions(-)
[matthewh@folio temp]$ git branch
* justatest
  master
[matthewh@folio temp]$ cat Readme 
This is the master branch
This text should only be seen in the justatest branch
[matthewh@folio temp]$ git checkout master
Switched to branch 'master'
[matthewh@folio temp]$ cat Readme 
This is the master branch
[matthewh@folio temp]$ git merge justatest
Updating 88aa000..1afc6c7
Fast-forward
 Readme |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
[matthewh@folio temp]$ cat Readme 
This is the master branch
This text should only be seen in the justatest branch
于 2012-06-30T01:35:32.137 に答える
1

編集を行っても、それらはブランチの一部ではありません。これらの変更は、作業フォルダーのみに適用されます。ファイルのコミットされたバージョンと競合しない限り、まだコミットされていない未解決の作業がある間にブランチを変更することは許可されています。

あなたの場合、それはさらに簡単です。ブランチを作成したばかりなので、マスターとこの新しいブランチの両方が同じコミットを指しています。変更を追加してコミットすると、ブランチを切り替えると期待どおりの動作が得られます。

git add -A
git commit -m "my changes"
git checkout master

あなたのファイルは、分岐する前の状態になります。

繰り返し実行することで、チェックアウトした最後の2つのブランチを切り替えることができます

git checkout -

についても同様ですcd

作業ディレクトリとインデックスに関する情報については、http://progit.org/bookをご覧ください。

于 2012-06-30T01:42:47.300 に答える