1

そこで、branch-a という master から新しいブランチを作成し、それに切り替えました。私はいくつかの変更を加え、それ以降変更が加えられていないことを確認するためにマスターに切り替えましたが、マスター ブランチのブランチ a で行われたすべての変更が表示されます。これは正しいですか?まだマージせずにすべての mod をブランチ a で作成した場合、master には変更がないと予想されます。これが私がしたことです:

クリーンで最新の master ブランチから始めました。

  1. git ブランチ -b ブランチ-a
  2. 変更を加える
  3. git チェックアウト マスター
  4. git ステータス
  5. branch-a で行ったすべての変更が表示されます

これは正しいです?master に切り替える前に branch-a をコミットしなかったからですか?

4

2 に答える 2

2

2. と 3. の間にステップが欠落していると思います。

2a. 変更を追加してコミットします。

git add -A
git commit -m "describe your changes" 

最初のコマンドは変更されたすべてのファイルをインデックスに追加し、2 番目のコマンドはインデックス内のすべてをコミットします。

これで、元に戻すことができますmaster

編集: ブランチをチェックアウトすると、変更がコミットされるリポジトリが変更されます (作業ディレクトリ内の変更されていないファイルがブランチの HEAD と同期されます)。コミットされていない変更は作業ディレクトリに残り、追加された変更はインデックスに残ります。あなたがそう言うまでマージは起こりません。これで問題が明確にならない場合は、この記事の冒頭部分を参照して、git ツリーの優れた説明を確認してください。

于 2012-11-20T16:13:13.440 に答える
0

を使用git branchすると、ブランチを作成するアクションと、実際にブランチに切り替えるアクションが分離されます。また、ブランチに存在する前に変更をコミットする必要があります。

git branch -b branch-a

これにより、という名前のブランチが作成さbranch-aれますが、チェックアウトされないため、まだ にいmasterます。で作業したい場合branch-aは、git checkout branch-aここで実行するか、上記のコマンドを に置き換える必要がありますgit checkout -b branch-a master

make modifications

あなたが行きたいブランチにいると仮定すると、git add <modified files>; git commitこの時点で実際にはそれらの変更を含むブランチに新しいコミットが作成されます。

git checkout master

あなたはすでにマスターになっているので、これはおそらくあまり効果がありません。gitはコミットされていない変更を失わないようにするため、作業ディレクトリは実行前と同じように見えるはずですgit checkout

git status

あなたが参加していることを報告し、あなたがmaster行ったコミットされていない変更をリストする必要があります。

I see all the modifications that I made in branch-a

行ったすべての変更が表示されますが、それらは で行ったものではありませんbranch-a

于 2012-11-20T16:49:00.597 に答える