18

すべての git ユーザーはこれに慣れています:

> git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean

しかし、最近、1 つではなく 2 つのリモート (heroku と github、かなり標準的な状況だと思います) を使用するようになり、git status出力にオリジンが 1 つしか表示されないことに悩まされ始めました。

このようなものが表示されるように、他のリモコンを追加するにはどうすればよいですか?

> git status
On branch master
Your branch is up-to-date with 'origin/master'.
Your branch is up-to-date with 'heroku/master'.

nothing to commit, working directory clean

(この質問は、heroku や github とは関係ありません。単なる例です。)

4

3 に答える 3

10

git statusワークツリーのステータスであり、一度に 1 つのブランチのステータスです。

すべてのブランチのステータスを確認したい場合は、

git branch -avvv
于 2014-05-04T15:30:25.257 に答える
8

git statusリモート追跡ブランチへの相対的なステータスのみを表示します。ただし、リモート追跡ブランチを一時的に変更するのは簡単です。

git branch -u <remote>/<branch>

次にgit status、そのブランチのステータスが表示されます。

表示される変更は同じですが、現在のリモート追跡ブランチの前後のコミット数が適切に表示されていることに注意してください。

すべてのリモート ブランチのステータスを取得する bash スクリプト:

for o in $(git remote -v | grep fetch | cut -f 1 -); do # remote branch names
  git branch -u $o/master  # set remote tracking branch (git v1.8+ syntax)
  git status
  echo --------------------------------   # separator
  git branch -u origin/master >/dev/null  # restore original tracking branch
done

単一のコマンドを使用して両方のオリジンのステータスを取得するにはgit s:

git config --global alias.s "for o in $(git remote -v | grep fetch | cut -f 1 -); do git branch -u $o/master; git status; echo; git branch -u origin/master >/dev/null; done"

これにより、エイリアスが ~/.gitconfig ファイルに追加されます (後で編集して、メインのリモート ブランチまたはコマンドを変更できますs)。

origin/masterがデフォルトのブランチとしてハードコードされていることに注意してください。ハードコーディングせずに任意のブランチで作業するには、上記のスクリプトを変更して、最初に現在のリモート + ブランチを取得してから復元します。

于 2014-05-04T15:37:16.170 に答える