TFS の shelve/unshelve や cherry-pick に相当する Git のコマンドは何ですか?
2023-07-29 02:56:05
質問
TFSのshelve/unshelveコマンドはとても便利で、使い方もとてもシンプルだと思います。Git における同等のコマンドは何でしょうか。
TFSでのシナリオは以下の通りです。
- トランクに変更を加えました
- 棚上げする : 変更セットをサーバーに保存し(ラベル付き)、変更前のソースを取得する
- トランクで作業する
- 誰かがシェルブを解除することができます : 彼のワークスペースに変更セットを取得します。
チェリーピックというコマンドがあることは知っていますが、ワークフローや必要性に合っているかどうかはわかりません。
どのように解決するのですか?
あなたが説明したことは、次のようなものです。
git stash
ただし、git では自分自身のリポジトリを持っているので (サーバー上の単一のリポジトリではなく)、自分だけがその変更を取り消すことができます。
一般的な考え方は
# do some stuff
vim foo/bar.c
# stash away your changes
git stash
# do some other things...
# retrieve your changes
git stash pop
このチェンジセットに他の人がアクセスできるようにしたい場合、代わりに作業ブランチにコミットすることになるでしょう。
# make yourself a branch
git checkout -b temp-featureA
# commit to it
git add foo/bar.c; git commit
# now you push this branch (or they could just fetch straight from you)
git push origin temp-featureA
# Now, in someone else's repo:
# Fetch updates
git fetch origin
# Make a branch tracking the remote branch
git branch temp-featureA origin/temp-featureA
# Either check it out:
git checkout temp-featureA
# or cherry-pick it, to apply the changes somewhere else:
git cherry-pick temp-featureA
# or, if it's multiple commits, rebase it!
git rebase --onto my-branch start-of-featureA temp-featureA
関連
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[解決済み] GitのHEAD^とHEAD~の違いは何ですか?
-
[解決済み] git reset --mixed, --soft, --hard の違いは何ですか?
-
[解決済み] 他のgitリポジトリからコミットをチェリーピックすることは可能ですか?
-
[解決済み] Git で競合するファイルをリストアップする最も簡単な方法は何ですか?
-
[解決済み] git cherry-pickが「...38c74dはマージされましたが、-mオプションは指定されませんでした」と言う。
-
[解決済み] git cherry-pickを中止しますか?
-
[解決済み】特定のファイルへの変更のみをgit-cherry-pickする方法は?
-
[解決済み】どのようなGitブランチングモデルが有効ですか?
-
[解決済み] GitとSSH、どちらのキーを使うか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Git Bashが致命的に表示される:この操作は作業ツリーで実行する必要がある
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
[Gitラーニングノート】Gitのコンフリクト:マージする前に変更をコミットするかstashする。
-
[解決済み] Git で特定のコミットをマージする方法
-
[解決済み] 単一のgitコミットに対して設定されたユーザーを上書きする
-
[解決済み] 現在のブランチにあるファイルをメインブランチにある同じファイルに上書きしますか?
-
[解決済み] git diff を stdout に書き出すには?
-
[解決済み] 対話式リベースを中断する方法(--abort が効かない場合)?
-
[解決済み] .gitignoreで特定のファイルを除外する
-
[解決済み] Gitでは、これらの言葉はどのような意味ですか?リポジトリ、フォーク、ブランチ、クローン、トラック?