Gitの作業の流れが一目で分かる図 | 三度の飯とエレクトロン

Git、この後どうしたら良いんですか?

いったん、この図の流れに従ってやってみてください。(チームのみんなへ)

 

編集する

プログラムに編集を加えたら、全ファイルをgit管理下に入れて、コミットして、pushします。

git add .git commit -agit 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 rejectedMerge 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_HEADRemoving .DS_StoreAuto-merging AndroidManifest.xmlCONFLICT (content): Merge conflict in AndroidManifest.xmlRemoving res/layout/account.xmlRemoving res/layout/login.xmlAuto-merging res/values/strings.xmlCONFLICT (content): Merge conflict in res/values/strings.xmlAuto-merging src/in/my365/ConfigActivity.javaAutomatic 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 -agit push origin master

 

まとめてみると

たまにGitで迷子になった人から「この後どうしたらいいんですか?」と聞かれるので書いてみましたが、まとめてみると意外に単純でした。(そもそもこんな図を見なくても、実はちゃんと出力されるメッセージを読めば、やるべきことは分かります。全ては英語に対する苦手意識を捨てることからです。)

それでは良いGit生活を!

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中