gitコマンド
リモートリポジトリのURL
git clone ssh://user@server:60022/home/user/test.git
cloneを作成する。cloneというのはファイルだけではなく、これまでの変更履歴なども全てサーバーの複製を取得するという意味。
git init
空のフォルダに.gitフォルダを作って、gitを使う準備をする。
・ローカルのリポジトリには、masterとorigin/masterの二つのブランチがある。fetchはorigin/masterのブランチを更新する
・origin/masterとは、origin(リモートリポジトリ)のmasterを追跡する追跡ブランチ
・追跡ブランチとは、リモートリポジトリの最新の状態を取得するための影武者
整理
リモートリポジトリの内容をローカルに反映させるための本来の手順は、リモートの内容をいったん追跡ブランチに反映させ、追跡ブランチとローカルの状態を比較して問題がなければ追跡ブランチの内容をローカルに反映させる。
コピーしてそのまま適用させるのはこわいので、手元にリモートの内容のコピーを取得するということを行なっている。
fetchコマンドは、ローカルの追跡ブランチを更新する。これによってローカルの追跡ブランチはリモートのブランチと同一の内容になる。
リモートリポジトリからローカルへのマージ方法
・GitHub Desktopでは、changed filesのchanges内容をdiscardすると、ファイル単位でmergeされる
・Branchメニューから、
—
commit
(おそらく)ローカル環境で開発を行ったものを、ローカル環境内で決定稿として保存する動作だと思う。commitしただけではリモートリポジトリは更新されない。commitしたものをpushするというもう一つ動作が必要。
git commit -m “コメント”
commitコメントをコマンドで編集しようとするとテキストエディターみたいなやつが現れて大混乱するので、-mで一緒にコメントを登録してしまう方が良い。
push
commitしたらpushする。pushするときにパスワードを聞かれるので入力してあげること。
pull
fetchとmergeを一気にやるコマンド。追跡ブランチにfetchして、追跡ブランチからローカルのブランチに合体させる。
「Your branch and ‘origin/develop’ have diverged」
pullしようとした時に、上のメッセージが表示されてmergeできない場合がある。分岐点の異なるcommitをmergeしようとしていることが原因と思われる。こちらのcommitがリモートでmergeされていない場合、それぞれが独自の道を進んでしまってmergeできない。
git add
addコマンドで、指定したファイルがcommit候補に追加される。これはまだcommit候補です。これを指定した状態でcommitすると指定したファイルがcommitされる。
git remote -v
現在繋がってるリモートのアドレスを確認できる。
うっかり思っているリモートと違うところにつながってる場合がある。
git reset –hard HEAD^
これで直前のcommitを消去することができる。
commitの消去というのは、ローカルの変更の消去ということになる。例えばファイルを編集したとか。ファイルを追加したとか。ローカルで操作した内容を取り消したい時は、それがcommitされていれば、そのcommitを取り消すという考え方になる。
commitを取り消すとローカルのファイルも更新される(元に戻る)。ファイルを増やしたというcommitを消去するとファイルも消える(増やす前に戻る)
git checkout