2016-11-18 10 views
2

私はGitとGitHubの使い方を学びたいと思っています。私はシンプルなHTMLファイルを作って、いくつかの変更を元に戻そうとしています。私はGitHubのWindowsアプリケーションとリポジトリを使用しています復帰コミットの競合を解決するには

はここにある:https://github.com/ionutincau/Ceau

私の最後の2つのコミットは「リストにアカウントを追加」と「一覧に13を追加」です。私は、「一覧に13を追加し、」コミット戻したいが、私は、このファイルを取得する:私がする必要がどのような

<!DOCTYPE html> 
<html> 

<head> 
    <title>Hi</title> 
</head> 

<body> 
    <p>Hi, this is my first version</p> 
    <p>TODO List:</p> 
    <p>- Pictures</p> 
<<<<<<< HEAD 
    <p>- 13</p> 
    <p>- Accounts</p> 
======= 
>>>>>>> parent of 76f0f70... Add 13 to list 
</body> 

</html> 

を?これはどのように機能していますか?

答えて

2

を教えてください。 アカウントに行を追加しなかった場合、Gitは76f0f70の復帰が単に行を削除していることを知りました。しかし、今度はアカウント行にヒットし、 "Whoa、私は76f0f70からの変更を元に戻す方法はわかりません。 ?

<body> 
    <p>Salutare aceasta este prima versiune</p> 
    <p>TODO List:</p> 
    <p>- Poze</p> 
    <p>- Accounts</p> 
</body> 

</html> 

:私は、ファイル内の問題の一部をマークしている、あなたは手で私を助けることができる」

だから、あなたがファイルを開く、Gitリポジトリによって挿入された不要なラインとすべてのマーカーを削除今度は、 git add index.htmlを実行してコミットすることで解決された競合をマークすることができます。歴史は、今のようになります、もちろん

$ git show --oneline 02933f8 
02933f8 Revert "Add 13 to list" 
diff --git a/index.html b/index.html 
index 9f99341..6bec1cf 100644 
--- a/index.html 
+++ b/index.html 
@@ -9,8 +9,7 @@ 
     <p>Salutare aceasta este prima versiune</p> 
     <p>TODO List:</p> 
     <p>- Poze</p> 
-  <p>- 13</p> 
     <p>- Accounts</p> 
</body> 

この場合には、気にしない方が簡単ですし、単にgit revertを使用せずに、不要な行を削除します。

$ git log --pretty=oneline --abbrev-commit | head -n 3 
02933f8 Revert "Add 13 to list" 
d4b2377 Add Account 
76f0f70 Add 13 to list 

そして元に戻すには、このようにルックスをコミット。

0

私はあなたのコミット履歴を調べました。あなたのコミットを取り除くには、まず "リストに13を加える"ことがまず必要です。 "Refactor"をコミットするには頭を奪わなければなりません。

git reset --hard 8816fb 
git cherry-pick d4b2377 
git push origin HEAD --force 

最初のコマンドは、「リファクタリング」に

をあなたの頭を取る2番目のコマンドを使用すると、リセットので最後には--forceをプッシュする必要があなたの

をマスターする「リストにアカウントを追加」を選択します頭。

あなたはどんな質問を持っているか、私はあなたの質問を誤解している場合、私はシンプルな競合があります

+0

しかし、それは元に戻っていません。 – zoul

+0

私は彼が "リストに13を追加"コミットを削除するよう求めていると思っていました。 – DilumN

+2

コミットを元に戻すことは、コミットを取り消すこととは異なります。元に戻すと既存の履歴は変更されず、不要な変更を取り消す新しいコミットが記録されます。 – zoul

0

2つのコミットの変更された行が隣人の場合、元に戻す競合があります。しかし、あなたの変更ラインがこのような場合:

<body> 
    <p>Hi, this is my first version</p> 
    <p>TODO List:</p> 
    <p>- Pictures</p> 
    <p>- 13</p> 
    something 
    <p>- Accounts</p> 
</body> 

あなたは元に戻り、矛盾はありません。 理由があります: Conflict while trying a revert in Git

関連する問題