2017-09-06 8 views
-1

プロジェクトに取り組んでいたときに(コードはItellij IDEで)、間違って私の端末で2つのステップを実行しましたが、いくつかの変更がメインリポジトリに反映されていました。 )。 誰がそれをしたのか分かりますか?"git add"と "git commit"の前に "git push"を実行するとどうなりますか?

注: プッシュされた変更は自分のコードではありませんでした。

  1. gitのプル私の端末から(全件まで-日、私が受け取った)
  2. Gitのプッシュ(というよりも "gitのコミット" "gitの追加" と)私の端末から

    • 追加追加情報(編集) はい、git pushを実行する前に、ローカルリポジトリにいくつか変更がありました。しかし、私が "git push"の間違いをしたとき、ローカルコミットされた変更のどれもプッシュされず、むしろ私が引っ張った他のコードがプッシュされました。

Gitが理解するためにここに質問をすることと考えていた私はなぜ理解できませんでした。

私の答えに影響を与えることなく、考えられる原因を知りたいという質問がありました。

+2

あなたの質問は最高でも曖昧です。ローカルコミットをしなかった場合、プッシュは何もしません。 –

+0

@AbhijitSarkarこれも私の一般的な感じでした。私はプッシュが実際に通過した場合に起こったかもしれないことを説明しようとする答えを試みました。 –

+0

IDEが自動的にコードをコミットすることがあります。何が起きたのか調べるには、 'git log'または' git reflog'を使います。 – haolee

答えて

0

git pullに偶発的に行ったときに地元の支店の状態を教えてくれなかったために起こったことを正確に言うことは難しいです。git push。リモートトラッキングブランチにまだ表示されていないローカルコミットがない場合、リモートがすでに最新であると言って、git pushが失敗すると思います。あなたが偶発的なgit pullの直前にgit statusを実行し、Gitがあなたの支店がリモートよりも先にコミットしていると言ったとすれば、

2番目の手順では、git pushを実行しました。これが完了したと仮定すると、私はそれを解釈して、まだプッシュされていないローカルコミットを実際に行ったことを意味します。だからこそ、以前のローカル作業の一部がおそらく早すぎてリポジトリにプッシュされたということです。それらのコミットが誠実になされたと仮定すると、あなたは何も心配する必要はありません。そうでない場合は、git revertを使用して、常に1つ以上のコミットを元に戻すことができます。

0

これは私が

[email protected] MINGW64 /c (11.1.0) 
$ git pull 
Already up-to-date. 

Gitのプルを複製しようとしたときに何が起こるかでは成功であると私は私のファイルに変更を加えました。

[email protected] MINGW64 /c (11.1.0) 
$ git push 
Everything up-to-date 

何も検出されません。

[email protected] MINGW64 /c (11.1.0) 
$ git status 
On branch 11.1.0 
Your branch is up-to-date with 'origin/11.1.0'. 
Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

     modified: ReleaseNotes/Release_Notes_11.1.0.docx 

no changes added to commit (use "git add" and/or "git commit -a") 

私はGitのステータスを行うと、それは

[email protected] MINGW64 /c (11.1.0) 
$ git add . 

の変化を識別しているがコミットするファイルを追加しました。

[email protected] MINGW64 /c (11.1.0) 
$ git push 
Everything up-to-date 

ここでも何も発見されていない

[email protected] MINGW64 /c (11.1.0) 
$ git status 
On branch 11.1.0 
Your branch is up-to-date with 'origin/11.1.0'. 
Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

     modified: ReleaseNotes/Release_Notes_11.1.0.docx 

現在のステータスは、プッシュが成功で変更ローカル

[email protected] MINGW64 /c (11.1.0) 
$ git push 
Counting objects: 4, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (4/4), done. 
Writing objects: 100% (4/4), 50.57 KiB | 0 bytes/s, done. 
Total 4 (delta 0), reused 0 (delta 0) 
remote: 
remote: Create pull request for 11.1.0: 
remote: https://bitbucket.org/URL 
remote: 
To bitbucket.org:Project/repo.git 
    7db5eb6..28697fa 11.1.0 -> 11.1.0 

コミット

[email protected] MINGW64 /c (11.1.0) 
$ git commit -m 'Release notes amended' 
[11.1.0 28697fa] Release notes amended 
1 file changed, 0 insertions(+), 0 deletions(-) 
rewrite ReleaseNotes/Release_Notes_11.1.0.docx (62%) 

を特定しました。

プッシュを適用したときに、ローカルでコミットされた変更があったはずです。

関連する問題