2226

n個のコミットがある場合、n-3コミットからどのように分岐できますか?

すべてのコミットのハッシュを見ることができます。

4

19 に答える 19

3147

ハッシュを介してブランチを作成できます。

git branch branchname <sha1-of-commit>

または、シンボリックリファレンスを使用します。

git branch branchname HEAD~3

ブランチの作成時にブランチをチェックアウトするには、次を使用します。

git checkout -b branchname <sha1-of-commit or HEAD~3>
于 2010-05-12T07:24:18.973 に答える
314

github.comでこれを行うには:

  1. プロジェクトに移動します。
  2. 「コミット」をクリックします。
  3. 分岐先のコミットの<>(「履歴のこの時点でリポジトリを参照」)をクリックします。
  4. 左上の「ツリー:xxxxxx」をクリックします。言語統計バーのすぐ下に、「ブランチの検索または作成」オプションが表示されます(そこに新しいブランチ名を入力するだけです)。以前のコミットからの分岐
于 2013-08-08T22:08:28.650 に答える
108

魔法はgitresetで実行できます。

  1. 新しいブランチを作成してそれに切り替えます(最新のコミットはすべてここに保存されます)

    git checkout -b your_new_branch
    
  2. 以前の作業ブランチに切り替えます(マスターであると想定します)

    git checkout master
    
  3. 最新のxコミットを削除し、マスターをクリーンに保ちます

    git reset --hard HEAD~x    # in your case, x = 3
    

この時点から、最新のxコミットはすべて新しいブランチにのみ存在し、以前の作業ブランチ(マスター)には存在しなくなります。

于 2015-08-03T09:04:43.353 に答える
86

事前にどのコミットから分岐したいかわからない場合は、コミットをチェックアウトして、コードを調べることができます(ソース、コンパイル、テストを参照)。

git checkout <sha1-of-commit>

分岐したいコミットを見つけたら、通常の方法で分岐を作成するだけで、コミット内から(つまり、最初にマスターに戻らずに)それを実行できます。

git checkout -b <branch_name>
于 2014-02-10T16:43:35.680 に答える
37

単に実行します:

git checkout -b branch-name <commit>

例えば ​​:

git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8

パラメータを指定したcheckoutコマンドは-b、新しいブランチを作成し、それに切り替えます

于 2019-01-10T22:35:45.093 に答える
32
git checkout -b <branch-name> <sha1-of-commit>
于 2017-07-11T07:11:37.427 に答える
19

これにより、次の1つのコマンドでブランチが作成されます。

git push origin <sha1-of-commit>:refs/heads/<branch-name>

すぐにブランチを作成するので、上記で公開した方法よりもこの方法の方が適しています(後で追加のプッシュコマンドを必要としません)。

于 2019-09-09T08:39:24.453 に答える
12

--help関連する素晴らしい質問は次のとおりです。gitのオプションを使用してこれをどのように理解しますか?これを試してみましょう:

git branch --help

次の出力が表示されます。

NAME
       git-branch - List, create, or delete branches    

SYNOPSIS
       git branch [--color[=<when>] | --no-color] [-r | -a]
               [--list] [-v [--abbrev=<length> | --no-abbrev]]
               [--column[=<options>] | --no-column]
               [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>]
               [--points-at <object>] [<pattern>...]
       git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
       git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
       git branch --unset-upstream [<branchname>]
       git branch (-m | -M) [<oldbranch>] <newbranch>
       git branch (-d | -D) [-r] <branchname>...
       git branch --edit-description [<branchname>]

ゴブルデグック。

後続のテキストで「コミット」という単語を検索します。私たちはこれを見つけます:

   <start-point>
       The new branch head will point to this commit. It may be given as a branch name, a
       commit-id, or a tag. If this option is omitted, the current HEAD will be used instead.

どこかに行きます!

ここで、gobbledegookのこの行に注目してください。

git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]

これに凝縮します:

git branch <branchname> [<start-point>]

そして完了。

于 2016-07-19T16:35:48.250 に答える
12

Sourcetreeの使用| 最も簡単な方法。

  • まず、新しいブランチを作成するために特定のコミットを実行するブランチをチェックアウトします。
  • 次に、ツールバーを見て、[リポジトリ]>[ブランチ]を選択します...ショートカットはCommand+ Shift+Bです。
  • そして、実行したい特定のコミットを選択します。そして、新しいブランチ名を付けてから、ブランチを作成します。

ここに画像の説明を入力してください

于 2019-12-11T10:45:00.663 に答える
11

Githubリポジトリでそれを行う簡単な方法は次のとおりです。

  • ブランチから特定のコミットを見つける
  • SHAIDの横にある[履歴のこの時点でリポジトリを参照する]をクリックします
  • ここで、このコミットから新しいブランチを作成できますここに画像の説明を入力してください
于 2017-01-14T17:51:09.183 に答える
10

これは私がしたことです:

C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b
Switched to a new branch 'responsivenavigation'

C:\Users\jaimemontoya\[path]\app>git branch
  master
* responsivenavigation

この場合、8a75b001096536b3216022484af3026aa9c7bb5bwasとoldcommitはmasterブランチに属しています。

于 2018-06-14T08:23:44.927 に答える
4

Eclipseでこれを行うには:

  • 「Gitリポジトリの探索」パースペクティブに移動します。
  • 「タグ」を展開し、ブランチを作成するコミットを選択します。
  • コミットを右クリックして、「ブランチの作成」を選択します。
  • ブランチ名を入力します。

ローカルブランチが作成されます。その後、変更をプッシュするたびに、ブランチがリモートサーバーにプッシュされます。

于 2013-05-17T12:03:15.647 に答える
3

私はそのようにそれをすることができました:

git branch new_branch_name `git log -n 1 --skip 3 --format=%H`

スキップ値を入力する必要がある場所。0は最新、1は前、2はその前のコミットなどです。

于 2013-01-31T21:36:23.210 に答える
3

あなたはスタッシュでそれを行うことができます。

  1. コミットをクリックします
  2. 画面の右上にある[このコミットにタグを付ける]をクリックします
  3. 次に、作成したタグから新しいブランチを作成できます。
于 2017-01-18T17:20:08.563 に答える
3

gitリポジトリの特定のコミットに移動します

gitリポジトリで作業しているときに、特定のコミット(リビジョン)に戻って、特定の時間にプロジェクトのスナップショットを取得したい場合があります。これを行うには、次のコマンドを使用してログを確認することで簡単に見つけることができる、コミットのSHA-1ハッシュが必要です。

git log --abbrev-commit --pretty=oneline

これにより、すべてのコミットのコンパクトなリストとSHA-1ハッシュの短いバージョンが提供されます。

移動したいコミットのハッシュがわかったので、次の2つのコマンドのいずれかを使用できます。

git checkout HASH

また

git reset --hard HASH

チェックアウト

git checkout <commit> <paths>

パスの現在の状態を指定されたコミットの状態に置き換えるようにgitに指示します。パスはファイルまたはディレクトリにすることができます。

ブランチが指定されていない場合、gitはHEADコミットを想定します。

git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'.

パスが指定されていない場合、gitは指定HEADされたコミットに移動します(これにより、現在作業中のコミットが変更されます)。

git checkout branch //means switching branches.

リセット

git reset <commit> //re-sets the current pointer to the given commit.

ブランチにいる場合(通常はそうする必要があります)、HEADこのブランチはコミットに移動されます。

デタッチHEAD状態の場合、gitresetは移動するだけHEADです。ブランチをリセットするには、最初にそれをチェックアウトします。

gitresetとgitcheckoutの違いについてもっと知りたい場合は、公式のgitブログを読むことをお勧めします。

于 2018-07-20T15:47:56.480 に答える
2

コミットを選択

Git GUIユーザーの場合、すべての履歴を視覚化して(必要な場合)、分岐元のコミットを右クリックして分岐名を入力できます。

支店名を入力してください

すべての履歴を視覚化する

于 2018-08-28T12:04:32.300 に答える
0

コマンドラインベースのソリューションを探している場合は、私の答えを無視してかまいません。GitKrakenの使用をお勧めします。これは並外れたgitUIクライアントです。ホームページにGitツリーが表示されます。それらを見るだけで、プロジェクトで何が起こっているのかを知ることができます。特定のコミットを選択し、それを右クリックして、[ここにブランチを作成する]オプションを選択するだけです。ブランチ名を入力するためのテキストボックスが表示されます。ブランチ名を入力し、「OK」を選択すると設定されます。とても使いやすいです。

于 2019-09-13T16:22:43.773 に答える
0

Git Gui(GIT for Windowsに付属)を使用しました。

  1. メニューバーで、 [ブランチ]メニューを開き、[作成... ]を選択します。
  2. [ブランチ名]セクションで新しいブランチの名前を指定します
  3. [リビジョン式の開始]セクションで[リビジョン式: ]を選択し、コミットIDを入力します(Visual Studioの8桁のIDを使用しただけで、機能しました)

[新しいブランチの作成]ダイアログウィンドウ

于 2022-02-24T23:30:28.630 に答える
-1

非常に単純なソースツリーを使用する場合。

  • 新しいブランチを作成する必要がある場所からコミットを右クリックします
  • 「ブランチ」をクリックします
  • 表示されたダイアログに新しいブランチの名前を入力し、[ブランチの作成]をクリックします
于 2019-07-31T06:47:45.320 に答える