17375


githubにリポジトリを作成している状態で、developのブランチを作成しました。  
`git clone`してから`sudo git checkout -b develop`でdevelopに変更できましたが、  
`git clone` したものの内容がmasterの中身のままです。  
他者がdevelopで開発をしていて、開発したものをコピーして確認したいのですが、方法がわからないです。mergeをまだしないでコピーだけしたです。  
よろしくお願いいたします。


CC BY-SA 3.0
2015-10-07T12:05:23.560
17373
2015-10-07T13:08:30.980
10980
question
git
Githubのbranchからのコピーについて


`git checkout` は確かにブランチをチェックアウト（切り替える）する時に使うコマンドですが、 `-b` オプションを指定した場合は「
**現在のコミットを指した新しいブランチを作り** 、そのブランチをチェックアウトする」という意味になります。そのため master
ブランチと同じものが見えてしまったのでしょう。

  1. `git checkout master` で元のブランチに戻り、
  2. `git branch -d develop` で誤って作成した develop ブランチを削除し、
  3. `git checkout develop` で `origin/develop` を追跡する develop ブランチを作成

といった感じで Github と同じ develop ブランチをチェックアウトしなおせると思います。

また `sudo` がついていますが、 Git は作業ディレクトリ上のファイルだけでなく `.git`
以下の管理ファイルも作成・更新するため、それらのファイルの所有者が root になる可能性があります。こうなると sudo
なしでの操作に問題が起きることがあるため、極力 sudo の利用を避けることをお勧めします。

が、

> mergeをまだしないでコピーだけしたです。

Git におけるマージというのは、あるブランチに別のブランチの内容を取り込んで合流させることです。つまり master から develop
に現在のブランチをチェックアウトしただけでは、マージされることはありません。

※`git pull` はリモートでの変更をローカルブランチに取り込むため、マージが発生します。

そのうえで、コピーだけしたいというのがよくわかりません。何を懸念して「merge」を避け、「コピー」にどのような結果を期待されているのでしょうか。

* * *

Github などに push
していない変更はコマンド操作によって消失する可能性もあります。もし心配であればリポジトリを丸ごと別の場所にコピーしておくと安全かと思います。

参考 [サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 |
どこでもプロジェクト管理バックログ](http://www.backlog.jp/git-guide/stepup/stepup1_1.html)


CC BY-SA 3.0
2015-10-07T13:08:30.980
17375
2015-10-07T13:08:30.980
8000
17373
answer