git-あなたのブランチは1回のコミットで 'origin / master'の前にあります


107

私はgitの初心者で、gitに取り組んでいます。

私はいくつかのファイルをgitに追加しました:

git add <file1>
git add <file2>

その後、レビューのためにそれをプッシュしたかったのですが、誤って

git commit

だから私が変更したファイルはレビューに行きません。
次のコマンドを入力すると:

git status

それは言う

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

そのコミットを元に戻したいので、コミットではなく、レビューのためにそれらのファイルをプッシュしたいと思います。誰でも私にそれを行う方法を教えてもらえますか?


コミットを取り消す場合は、同様の質問をご覧ください。
ДМИТРИЙМАЛИКОВ

1
コードレビューに何を使用しているのかわかりません。非コミットかの簡単な質問に簡単な答えがあるgit reset HEAD^
Anonymoose

ヘッドをリセットしました。しかし、プッシュしようとすると、D file1.pyと表示され、psuhを実行しようとすると、ブランチが1コミットでオリジン/マスターよりも進んでいると表示されます
sam

「レビューのためにこれらのファイルをプッシュしたい」とはどういう意味ですか?他の人にあなたのコミットを見てもらいたいですか?
ジェイクグリーン

私のコードは最初にレビューされ、それからコミットされます。最初にレビューのためにコードをプッシュしたいのですが、誤ってコミットしました
sam

回答:


128

まだコミットされていないものはプッシュできません。操作の順序は次のとおりです。

  1. 変更を加えます。
  2. git add -これはコミットのための変更をステージングします
  3. git commit -これにより、ステージングされた変更がローカルにコミットされます
  4. git push -これにより、コミットされた変更がリモートにプッシュされます

コミットせずにプッシュすると、何もプッシュされません。追加せずにコミットすると、何もコミットされません。コミットせずに追加した場合、何も起こりません。gitは、追加した変更が次のコミットで考慮されることを覚えているだけです。

表示されているメッセージ(ブランチが1コミット進んでいる)は、ローカルリポジトリにまだプッシュされていない1つのコミットがあることを意味します。

言い換えると:addcommit、ローカル操作されpushpullかつfetch操作リモートと相互作用することがあります。

作業している場所には公式のソース管理ワークフローがあるようですので、これをどのように処理するかを内部で確認する必要があります。


4
ああ、いいよ。つまり、コミット後、私はそれをプッシュする必要があるということです
sam

4
良い説明-質問者はおそらく実際にコミットを元に戻すことを望んでおらず、むしろoriginリポジトリにプッシュする前にコミットをレビューしてもらいます。git-scm.com/documentationで
dbr

1
私のgitステータスが「あなたのブランチは1回のコミットで「origin / develop」よりも進んでいる」と言ったとき。ファイルが変更されたことをどのように正確に表示しますか?git diffは何もしないようです
Tom

時々そこで働いた誰かがいます。あなたのプッシュの前にプルを作る
エイドリアンP.

67

git reset HEAD^ --soft (変更を保存し、最後のコミットに戻します)

git reset HEAD^ --hard (変更を破棄し、最後のコミットに戻る)


3
にんじん '^'のHEADの意味は何ですか?ニンジンなしで書かれているのも見ました。
ムゲン

29

変更を破棄して最後のコミット(共有したいコミット)に戻したい場合:

git reset --hard HEAD~

git logすべての変更が失われるため、これ()が本当に必要かどうかを確認することをお勧めします。

より安全な代替策は実行することです

git reset --soft HEAD~ # reset to the last commit
git stash              # stash all the changes in the working tree 
git push               # push changes 
git stash pop          # get your changes back 

21

私は単純に実行するだけでこれを解決しました:

git pull

これ以上何もない。今それが示しています:

# On branch master
nothing to commit, working directory clean

不要なブランチが複数作成されると問題が発生する可能性があります。
Anil Kumar Arya 14年

1
リモート状態に戻り、最後の作業を失った:D
Gucho Ca

13

git reset HEAD ^

次に、変更されたファイルが表示されます。

変更したファイルを新しいブランチに移動できます

使用する、

git checkout -b newbranch

git checkout commit -m "files modified"

git push origin newbranch

git checkout master

その後、クリーンなブランチにいる必要があり、変更はnewbranchに保存されます。後でこの変更をmasterブランチにマージすることができます


4
git reset HEAD <file1> <file2> ...

次のコミットから指定されたファイルを削除します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.