gitsvncloneを介して作成されたsvnリポジトリのgitチェックアウトがあります。ローカルのgitリポジトリに複雑な一連の変更があり、中央のsvnリポジトリへのプッシュが遅れています。小さな変更を1つのファイルにプッシュしたいと思います。svnクライアントを使用するとき私はします
svn commit foobar.c
gitで同様の機能を取得する方法はありますか?
簡単。
解決策1:git内でコミットされていないものはすべて隠しておくことができます。とにかくdcommittingするとき、コミットされていないファイルは許可されません。
解決策2:現在の場所で新しいブランチを開始します。マスターブランチを、SVNからgitした最後のコミットにリセットします。ファイルをgit内のマスターブランチにコミットします。SVNへのDCommit。dcommitの後で、作成した新しいブランチを新しいマスターにリベースします。
質問は?グラフィカルツールを使用すると、ここで大いに役立ちます...
何もコミットしなかった限り、ブランチやリベースなど、Gitが提供するものなら何でも完全に使用できます。したがって、おそらくやりたいことは、現在のSVNバージョン(git branch <name> remotes/trunk
)からブランチを作成し、今のところそれに取り組むことです。次に、慣れているようにこれらの変更をコミットできます。
その後、他の変更を続行するには、を使用して間にプッシュしたコミットに一致するようにそれらをリベースできますgit rebase remotes/trunk
。その後、後のコミットを間に挟んで線形の履歴に戻り、新しい機能の作業を続けます。