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