2012-02-11 18 views
14

一般的にはgitとバージョンコントロールには新しく、ファイルの移動については質問があります。私は6つのソースファイルを持つGitHubのマスターレポを持っています。Gitファイルをフォルダに移動する

私はプロジェクトで多くの作業をしましたが、ローカルブランチにはソースが2つ含まれています。

のようにするために使用されるディレクトリ構造:

マスター:

  • ファイル1
  • ファイル2
  • ファイル3
  • ファイル4
  • ファイル5
  • ファイル6

どこローカルブランチは次のようになりますよう:

新規フォルダ1:

  • 新規ファイル1
  • 新規ファイル2
  • 新規ファイル3

新フォルダ2:

  • ファイル1
  • ファイル2
  • ファイル3
  • ファイル4
  • ファイル5
  • ファイル6

は、どのように私は私を失うことなく、masterブランチに私の地元の構造を移動することができます古いファイルの履歴をコミットしますか?

答えて

11

コミットしてください。 Gitの責任などは、一般的に自動的に動きを検出するのにはかなり良い仕事をします。

7

gitは実際にはファイルの「移動」を追跡しませんが、同様のコンテンツの要求に応じて推論します。だから、移動を行い、必要に応じてファイルを追加/削除してください。 (コンテンツを変更したり、1回のコミットでそれらを移動したりしないようにしておくと、将来的にツールの使い勝手が向上します)

次に、移動のログを表示するには、-M-C、またはそれらの変種はgit logです。他のツールにも同様のフラグが適用されます。また、その機能の詳細を理解するためにヘルプを読む必要があります。

ファイルにgit mvを使用すると、git rmgit addが表示されます。

+0

他のものは、あなたが必要とするものはすべてmvで難しいです。最初に便利になるようにmvへのフォルダを作成してください – doozMen

4

他のポスターは正しいですが、gitがこれらの移動を(削除/作成の組み合わせではなく)表示することを確認したい場合はgit statusを実行してください。あなたは、表示されるはずです。

githubので
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
# renamed: oldfile.txt -> newFolder/newfile.txt 
+8

gitが削除/作成の組み合わせとして移動を見ている場合はどうしたらいいですか? – Gauthier

+1

前のフォルダからファイルを削除してから、新しいフォルダにファイルを追加する段階 - ほとんどの場合gitはこれを名前の変更と見なします。 – Serg

0

、あなたは興味深い代替ファイルを編集することで、移動するにはあまりにも多くのファイルを持っており、変更しない場合、それは名前だと:

folder_to_move_into/file_name 

ますコミットすると、ファイルはそのフォルダに移動します。フォルダが存在しない場合は作成されます。

関連する問題