web-dev-qa-db-ja.com

なぜそれはコミットではなく、そこからブランチを作成できないのですか?

リポジトリの複雑な構成で作業する必要があります。私はそれらを5つ持っています:

  1. マシン1のリモート中央リポジトリ。
  2. ノートブック(マシン2)上のローカルリポジトリ。
  3. マシン3のベアリポジトリ。
  4. マシン3のリポジトリ。
  5. コードレビューを行うマシン4のリポジトリ。

それで、それがこのように機能するという私の理解:

  1. 私のラップトップ(マシン2)で、マシン1にある中央リポジトリからクローン/プルします。
  2. ローカルリポジトリをマシン3にプッシュします(ベアリポジトリを「中間」として使用します)。

次に、マシン3でいくつかの変更を行い、これらの変更をマシン4にプッシュしたいと思います。以下に、私が従う必要がある手順を示します。

  1. マシン3では、テストブランチですべての作業を行い、コミットします。
  2. マシン3のベアリポジトリにpushする:git push origin test-branch
  3. あなたのラップトップで:machine-3リポジトリから新しいコミットをフェッチします:git fetch machine3
  4. マシン3からブランチをチェックアウトします:git checkout -b test-branch machine-3/test-branch
  5. Machine-4からコミットをフェッチ:git fetch Origin
  6. git rebase Origin/master
  7. git Push Origin HEAD:refs/for/master

手順4で問題が発生しました。次のエラーが発生します。

fatal: 'machine3/test-branch' is not a commit and a branch 'test-branch' cannot be created from it

[〜#〜]追加[〜#〜]

実行すると

git rev-parse machine3/test-branch

私のラップトップ(マシン2)では、次のようになります。

machine3/test-branch
fatal: ambiguous argument 'machine3/test-branch': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
17
Roman

質問は複雑/複雑で、答えは簡単です。エイリアスとmachine3の間に不一致がありました。使用されたリモートのエイリアスはmachine3用ではありませんでした。 machine3には別のエイリアスがありました。

0
Roman

タグからブランチをチェックアウトしている場合(git checkout -b XXXX v0.1.1など)、最初にgit fetch --tagsを試すことができます。

0
ttfreeman