2

私はgitを初めて使用し、どういうわけか何かを壊しました。それはすべて競合から始まり、それから私はそれを解決し、ファイルを再度追加してプッシュしました。私の理解では、これは問題ないはずです。後で、新しいクローンを作成したときに、プロジェクトの壊れたバージョンがダウンロードされていました。そして、リポジトリをプルしようとすると、というメッセージが表示されましたAlready up-to-date.。それで、少し考えた後、私は小さな変更を加え、コミットして、もう一度プッシュしました。それをテストするために、私は別のディレクトリに新しいクローンを再度作成し、最後の小さな変更なしで突然動作するバージョンを取得しました。プッシュのように、最後のコミットから1バージョン遅れています。HEAD私はファイルをチェックしました:$ cat .git/HEAD出力はref: refs/heads/master私には大丈夫だと思われました。どこを見ればいいのかわからない。

友人が私がプッシュしたかどうか尋ねました--force、まあ私はしませんでした。(そして私はそれが何をするのか分かりません)。

また、新しいクローンを新しいディレクトリにダウンロードして、そこで作業を続行しようとしましたが、同じ効果が残っており、プッシュは1コミット遅れています。

コミットをbitbucketで見ると、次のようなものが表示されます(M-me、F-friendがプロジェクトでどのように作業しているか)

        F--F--F---
       /          \
 ...--M---------M--M--M

編集

要求される出力は次のとおりです。

$ git pull
Password: 
Already up-to-date.
$ git branch -a -v
* master                9247247 [ahead 1] Martin test commit 1. (with -a flag)
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master ddb4cbf Another try
$ git log --graph --format=%h
* 9247247
* ddb4cbf
* 9ec3835
* 2c5fd4c
*   e5dd998
|\  
| * 20bc5e1    (* This is the conflict I mentioned *)
| * 04a45a5
| * 7c57c81
* | 1d91307
|/  
* 223948e
* f43648d
*   a5ec578
|\  
| * 4e77b8b    (* This is a test conflict we made, to see how it works *)
* | 20fa9af
|/  
* ffe048d
* 90ea6fc
* 0e529f9
* 1622945
* 2207b8a

これにより私は実行さgit logれ、git show両方とも最後のコミットがであることが示されてMartin test commit 1.いますが、後で私が書いた場所でコミットしましたMartin test commit 2.


編集2

別の有線のもの:変更されたファイルがありますが、no changes added to commit。何?なんで?(git ls-filesindex.htmlファイルを示しています-これは、正しくステージングされていることを意味しますか?)

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# 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:   index.html
#
no changes added to commit (use "git add" and/or "git commit -a")

考えられる理由:remotes/origin/HEAD -> origin/masterしかしremotes/origin/master ddb4cbf Another try。どうすれば同じコミットを指すようにできますか?


編集3

$ git push origin master
Password: 
Everything up-to-date
$ git remote -v
origin  https://martin@bitbucket.org/O....s.git (fetch)
origin  https://martin@bitbucket.org/O....s.git (push)
4

1 に答える 1

2

出力は、最新のコミットをプッシュしていないことを示していますMartin test commit 1。を試してくださいgit push

Martin test commit 2コミットされていないか、リポジトリの他のコピーにコミットされていたがプッシュされていませんでした。その変更セットはまだローカル ディレクトリにある可能性もありますgit status。まだコミットされていないものを確認してください。

編集:

On no changes added to commit: ローカルの変更は、コミットする前にステージングする必要があります。実行git add index.htmlする前に実行する必要がありますgit commit。を使用して、ステージングされていないすべての変更をコミットすることもできますgit commit -a

On git ls-files: これは、インデックス内のファイルと作業ツリー内のファイルの両方を表示します。コミット用にステージングされたものとそうでないものを確認するには、 を使用しますgit status

リモートの場合:remotes/origin/HEAD/は の最新のコミットへの単なるポインターであるremotes/origin/masterため、既に同じコミットを指しています。

Everything up-to-dateonに関してはgit push、そうではありません。の出力を追加してくださいgit remote -v。リモコンが怪しいのかもしれません。も試してみてくださいgit push origin master

于 2013-01-07T11:14:50.783 に答える