回答:
ハッシュを介してブランチを作成できます:
git branch branchname <sha1-of-commit>
または、シンボリックリファレンスを使用します。
git branch branchname HEAD~3
作成時にブランチをチェックアウトするには、次を使用します
git checkout -b branchname <sha1-of-commit or HEAD~3>
git push origin BRANCH_NAME
<sha1-of-commit>
run からブランチを開始するgit checkout -b <name-of-branch> <sha1-of-commit>
が、ブランチがすでに存在する場合git checkout -B <name-of-branch> <sha1-of-commit>
github.comでこれを行うには:
マジックはgit resetで実行できます。
新しいブランチを作成してそこに切り替えます(最新のコミットはすべてここに保存されます)
git checkout -b your_new_branch
以前の作業ブランチに切り替えます(マスターであると想定)
git checkout master
最新のxコミットを削除し、マスターをクリーンに保つ
git reset --hard HEAD~x # in your case, x = 3
この時点から、最新のxコミットはすべて新しいブランチのみにあり、以前の作業ブランチ(マスター)にはもうありません。
git reset --hard
すでにコミットをオリジンにプッシュしている場合、aは良い考えではないことを忘れないでください...
git push --force
以前にブランチをプッシュしたことがある場合は、可能です
git checkout -b <branch-name> <sha1-of-commit>
git branch branchname <sha1-of-commit>
"(受け入れられた回答から)とどう違うのですか?
git checkout -b
新しいブランチを作るのに使います。
Githubリポジトリでそれを行う簡単な方法は次のとおりです。
単に実行する:
git checkout -b branch-name <commit>
例えば :
git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8
checkout
パラメーターを指定したコマンドは、-b
新しいブランチを作成すると、それはそれにあなたを切り替えます
git fetch
&git branch
ターミナルを使用して、プロジェクトのフォルダ上のコマンドは、その後、機能ブランチが存在する場合、このような場合には[はい、もちろんあなたが削除枝から枝を作成できるように文句を言わない、チェック、あなたはまた、場合には、分岐の削除を元に戻すことができブランチがなくなりました
関連する素晴らしい質問は次のとおりです:--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>]
Gobbledegook。
「commit」という単語を次のテキストで検索します。私たちはこれを見つけます:
<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.
どこかに着きました!
さて、ゴブルデコックのこの行に注目してください:
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
これを凝縮してください:
git branch <branchname> [<start-point>]
そして完了。
Eclipseでこれを行うには:
ローカルブランチが作成されます。その後、変更をプッシュするたびに、ブランチがリモートサーバーにプッシュされます。
あなたはスタッシュでそれを行うことができます。
私はそうすることができました:
git branch new_branch_name `git log -n 1 --skip 3 --format=%H`
スキップ値を入力する必要がある場所。0は最新、1は前、2はその前のコミットなどです。
HEAD~1
ですか(1は1つのコミットバックを指定します)?
これにより、1つのコマンドでブランチが作成されます。
git push origin <sha1-of-commit>:refs/heads/<branch-name>
私はこの方法を上に公開した方法よりも優れています。これは、ブランチをすぐに作成するためです(後で追加のプッシュコマンドを必要としないため)。
Sourcetreeの使用| 最も簡単な方法。
これは私がやったことです:
C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b
Switched to a new branch 'responsivenavigation'
C:\Users\jaimemontoya\Dropbox\CuponClub\androidapp\build>git branch
master
* responsivenavigation
この場合、8a75b001096536b3216022484af3026aa9c7bb5b
wasおよびold commitはmaster
ブランチに属していました。
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
状態の場合、git resetは移動のみを行いHEAD
ます。ブランチをリセットするには、まずそれをチェックアウトします。
git resetとgit checkoutの違いについて詳しく知りたい場合は、公式のgitブログを読むことをお勧めします。
git log --abbrev-commit --pretty=oneline
git log --oneline
Visual Studio 2015&2017で承認された回答を行うには:
変更箇所をクリックしてください(上の赤い矢印)
[アクション](上の赤い矢印)をクリックし、ドロップダウンメニューの[履歴の表示]をクリックします。
そして新しいタブが開きます:
そして、コードを元に戻す前のコミットを右クリックする必要があります。
新しいブランチをチェックアウトしてボイラを選択してください!
以下では、OPの質問の一部ではありませんが、私は多くのことを行いますが、これは少なくとも私にとってはトリックステップです:新しいブランチをチェックアウトせずに以前のコミットに戻したい場合は、revert(! ?); --mixedまたは--hardの再定義を選択する必要があります。
コマンドラインベースのソリューションを探している場合は、私の答えを無視できます。GitKrakenを使用することをお勧めします。それは並外れたgit UIクライアントです。ホームページにGitツリーが表示されます。あなたはそれらを見て、プロジェクトで何が起こっているかを知ることができます。特定のコミットを選択して右クリックし、「ここにブランチを作成」オプションを選択するだけです。ブランチ名を入力するためのテキストボックスが表示されます。ブランチ名を入力して「OK」を選択すると、設定が完了します。それは本当に非常に使いやすいです。