web-dev-qa-db-ja.com

git-あなたのブランチは1コミットで「Origin / master」より先です

私は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)

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

90
sam

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

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

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

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

つまり、addおよびcommitはローカル操作であり、Pushpullおよびfetchはリモートと対話する操作です。

あなたが働いている場所には公式のソース管理ワークフローがあるように見えるので、これをどのように扱うべきかを内部で尋ねるべきです。

118
tdammers

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

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

50
Juanito Fatas

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

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 
28
Shep

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

git pull

これ以上何もない。現在表示されています:

# On branch master
nothing to commit, working directory clean
17
karlingen

git reset HEAD ^

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

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

use、git checkout -b newbranch git checkout commit -m "files modified" git Push Origin newbranch

git checkout master

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

5
OZI
git reset HEAD <file1> <file2> ...

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

4
Bnjmn