Git、この後どうしたら良いんですか?
いったん、この図の流れに従ってやってみてください。(チームのみんなへ)
編集する
プログラムに編集を加えたら、全ファイルをgit管理下に入れて、コミットして、pushします。
git add .
git commit -a
git push origin master
pushに失敗した場合
無事にpushできれば、それで作業終了ですが、運悪く他の人の更新が先に入っている場合があります。その時はこのようなメッセージが出ます。
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git://hoge.com/fuga.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
ここでメッセージに注目!
Merge the remote changes (e.g. ‘git pull’) before pushing again.
対処法
「プッシュする前にpullしろ」と言われています。この場合は大人しくpullします。
git pull origin master
コンフリクトした場合
基本的にはpullによって自動マージがかかり、改めてpushし直せば作業終了です。しかし、時には運悪くコンフリクトしてしまう場合もあります。
その時はこんなようなメッセージが出ます。
From git://hoge.com/fuga
* branch master -> FETCH_HEAD
Removing .DS_Store
Auto-merging AndroidManifest.xml
CONFLICT (content): Merge conflict in AndroidManifest.xml
Removing res/layout/account.xml
Removing res/layout/login.xml
Auto-merging res/values/strings.xml
CONFLICT (content): Merge conflict in res/values/strings.xml
Auto-merging src/in/my365/ConfigActivity.java
Automatic merge failed; fix conflicts and then commit the result.
ここでメッセージに注目!
CONFLICT (content): Merge conflict in AndroidManifest.xml
対処法
自動マージできずにコンフリクトしたと出ていて、最後には丁寧に「コンフリクトを直してコミットしなおせ」と書かれています。
fix conflicts and then commit the result.
この場合は、コンフリクトしたファイルを1つずつ開いて、コンフリクトしている部分を修正していきます。修正が終わったら、再びaddしてcommitしてpushです。
git add .
git commit -a
git push origin master
まとめてみると
たまにGitで迷子になった人から「この後どうしたらいいんですか?」と聞かれるので書いてみましたが、まとめてみると意外に単純でした。(そもそもこんな図を見なくても、実はちゃんと出力されるメッセージを読めば、やるべきことは分かります。全ては英語に対する苦手意識を捨てることからです。)
それでは良いGit生活を!
コメント
[…] Gitの作業の流れが一目で分かる図 – 三度の飯とエレクトロン […]