「Gitについて何も知らないのに現場に放り込まれてしまった」
そんなことになったら、まず何をどうすればいいのか混乱することがほとんどだと思います。
コピペしてローカル環境でソースを修正しようとしたら「Cloneして作業してください」と言われてCloneとコピペの違いが分からなかったり、「コミットしてください」「プルしてください」と言われたところで何が行われているのか当然最初は分かりません。
Gitの入門書を見たり、ググってみたら漠然とどういう動作しているのかはわかるかもしれませんが、Gitの挙動は初学者ですと、少し調べただけでは何がどうなっているのか直感的には分かりにくいです。
さて、以下Gitを用いる開発現場に放り込まれた初学者は、とりあえず深いこと考えずに以下のことだけを、最低限の予習だと思って押さえてください。
当然これだけでは足りないですし、現場の運用方針やルールによっては他にも覚えるべきことは出て来ると思います。
しかし、取るものとりあえず以下のことだけ覚えておくのと、何も知らない状況ですと現場に入って作業にとりかかるまでのスピードと精神的安定感は全然違います。
#1.基本のコマンドは「add,commit,push,pull」のサイクルと「diff,status,checkout」
##基本は以下のサイクル
git add (ファイル名)
ディレクトリ以下すべてをaddしたい場合「git add .」とする
git commit -m 'コメント'
これでローカルリポジトリにコミットする
git push
ローカルリポジトリにコミットしたものをリモートリポジトリに反映させる。
これで他の人がpullしたら自分の変更分を反映できる。
git pull
他人がローカルリポジトリにコミットしたものを自分のところに反映させる。
##その他基本的なコマンド
・git reset
「addするのやっぱやめた」で最初は覚えておけばいい。
・git checkout(ファイル名 あるいは全部反映したいのなら「.」)
作業中に、最後にpushないしpullした状態に戻したくなった時に使用するコマンド。
本来、もっと別の意味があるが、最初はそのような使い方でもいい。
・git diff
addする前に打ち込むと、自分が変更した部分が出て来る。
これを見て自分が編集した覚えが無いものが上がっていた場合、自分のミスか、
あるいは他人の編集をデグレしてしまうことがあるため、
git resetでaddを取り消す。
・git status
addした後、commitの前に入力すると、変更されたファイルが確認できる。
これを見て、リポジトリにあげたくないものがあった場合、git resetで取り消す。
#2.git initとgit clone、git remote -v
リモートリポジトリ(pushする先)をgit initで作成する。もし、複数の人が共有できるようにするならば「git init --bare --shared」と入力。
git initしたリポジトリを自分の開発環境でローカルリポジトリに持ってきて編集する場合は「git clone (パス)」を用いる。
また、ローカルリポジトリが、どこをcloneしたものか忘れた場合は「git remote -v」を用いればパスが表示される
#3.「.gitignore」ファイルを作ってリポジトリにあげたくないファイルを指定する
「git add .」とすればディレクトリ内のすべてがaddされてしまうし、いちいちあげたくないもの(特にIMGやデータファイルなど)は、gitignoreに正規表現で記入しておけば、add時に該当ファイルは対象外にしてくれる。
#これらは必要条件
以上、現場に入るときに最低限覚えておくべきことについてまとめました。
無論、上記のことは最低限ですので、もしかしたらもう少し求められる(ブランチ切るなど)こともあり得ます。ただ、ここで書いたことで無駄になるものは絶対ないですし、全部最低限必要条件ですので、身に着けておくべきです。
ここで書いてある用語でよくわからない言葉(「リモートリポジトリ」とか)は調べてみてください。
#まとめ—最低限覚えておいた方がいいコマンド
git add
git commit
git push
git pull
git reset
git checkout
git diff
git status
git remote
git init
git clone
その後、恐らくリポジトリ内に余計なファイルが管理されてしまうことがあると思います。その時に「いらないファイル消せ」と先輩に言われたときに「gitで登録されてるファイルってどうやって消すんだろう。えーと…そうか、『git rm』か」と言った感じで必要に応じて使えるものを増やしていきましょう。