2016-09-13 2 views
0

をマージされた場合は知っていますか?Gitリポジトリ/ bashの:現在のブランチは、現在のブランチが</em>状態をマージ<em>であるかどうかを知る方法はあり

つまり、MERGE_HEADが存在するかどうかを知る方法はありますか?

は、私はいくつかのプロジェクトを横断するスクリプトを開発していると私はいくつかの手順を自動化します。

私の考えでは、競合をマージがある場合は

# for each project 
git checkout dev 
git pull 
git checkout $myBranch 
git merge dev 
if [[THERE_ARE_CONFLICTS]] 
    echo "Some warning" 
else 
    git push origin $myBranch 
fi; 
+0

「git status」はそれを報告していませんか? – redneb

+2

は、スクリプトだけで '.git/MERGE_HEAD'ファイルの存在を確認できませんでしたか? – kfb

答えて

1

git mergeのようなものがゼロ以外の終了ステータスを持っています。 KFBはコメントで示唆されているように、あなたが、その後、.git/MERGE_HEADの存在をチェック、終了ステータスへのアクセス権を持っていない場合はつまり、あなたは、単にそのgitのを検出するための信頼できる方法が現在あるさ、

git merge dev 
if [ "$?" -eq 0 ]; then 
    echo "All fine." 
else 
    echo "There were merge conflicts." 
fi 

を使用することができます[..]

記録$ GIT_DIR/MERGE_HEAD(次のgitのコミットマージを作成するためにcommitコマンドを引き起こすために)[..]

1
git-merge man pageで簡単に文書化されたとして、地位をマージ中

具体的なGiはありませんそのためのtコマンド。 あなたは.git/MERGE *ファイルの存在を確認することができます。

git merge dev 
if [ ! -z "$(ls .git/MERGE* 2>/dev/null)" ]; then 
    echo "Merge is on-going" 
else 
    echo "All fine." 
fi 
関連する問題