web-dev-qa-db-ja.com

コミットされていない変更をマスターでGitの新しいブランチに配置する

ブランチmasterにいるときに、ブランチTESTにコミットされていない変更を配置するにはどうすればよいですか?

テストブランチにチェックアウトしてからコミットできます。別のブランチに移動するときに、コミットされていない変更を失うことはありません。

あなたがmasterブランチにいると仮定します:

git checkout test
git add .
git add deletedFile1
git add deletedFile2
...
git commit -m "My Custom Message"

削除されたファイルについてはよくわかりませんが、git add .

150
Samuel Carrijo

また、新しいブランチを作成して、それに切り替えることもできます:

git checkout -b new_branch
git add .

コードの編集を開始する前に新しいブランチを開始することを常に忘れているため、これを常に使用しています。

195
Mike Bethany

なぜgit stashを使用しないのですか。コピーアンドペーストのようにより直感的だと思います。

$ git branch
  develop
* master
  feature1
  TEST
$

現在のブランチに移動したいファイルがいくつかあります。

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#      modified:   awesome.py
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#      modified:   linez.py
#
$
$ git stash
Saved working directory and index state \
  "WIP on master: 934beef added the index file"
HEAD is now at 934beef added the index file
(To restore them type "git stash apply")
$
$ git status
# On branch master
nothing to commit (working directory clean)
$
$
$ git stash list
stash@{0}: WIP on master: 934beef ...great changes
$

他のブランチに移動します。

$ git checkout TEST

そして適用する

$ git stash apply
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#
#      modified:   awesome.py
#      modified:   linez.py
#

私も好き git stashを使用するためgit flow、これはfinish作業ディレクトリに変更を加えながら機能ブランチをしたいときに文句を言います。

@Mike Bethanyと同じように、私はいつも別のブランチにいることを忘れながら新しい問題に取り組んでいるので、これはいつも私に起こります。 stash your work、git flow feature finish...、およびgit stash apply to new git flow feature start ... ブランチ。

35
HeyWatchThis
git checkout TEST
git add file1 file2
git commit
5
Bombe