Git常见问题

该文章经常更新

A

Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

问题原因:当你本地执行commit之后,你当前本地分支比你远程分支(例如码云,github)多提交了1次。就是不同步了!!!
解决方法:
a:使用git push将本地提交到远程。
b:使用git reset –hard origin/master将本地重置为远程版本(注意是两个-)

B

git reset --hard HEAD^
More?
fatal: ambiguous argument 'HEAD
': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git  [...] -- [...]'

问题原因:^在window是特殊字符。
解决方法:git reset –hard HEAD”^”或git reset –hard “HEAD^”或git reset –hard HEAD~1
如果你git log只有一个提交,会出现:

fatal: ambiguous argument 'HEAD~1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git  [...] -- [...]'

C

Cloning into 'atom_template'...
Warning: Permanently added the RSA host key for IP address '***.***.***.**' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

问题原因:没有添加SSH KEY,添加之后在clone就OK了。

D

当我pull时出现:

warning: no common commits
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
From gitee.com:HotWheel/Task
 * [new branch]      master     -> origin/master
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull  

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/ master

问题原因:没有指定本地master分支与远程origin/master分支的链接
解决方法:git branch –set-upstream master origin/master

F

当我git add . 提交了一个文件夹,但是在码云上发现,真的是只提交了一个文件夹,里面的内容没有。
问题原因:文件夹里面还有一个.git目录
解决方法:将文件夹里面的.git删掉,重新add就ok了

G

当我push时出现:

To [email protected]:HotWheel/Task.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to '[email protected]:HotWheel/Task.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

注意第二行master -> master (fetch first)
原因是本地和远程有冲突了,应该先pull,在push

H(关于打Patch冲突)

Git常见问题_第1张图片

问题原因:打patch时候冲突了
解决方法:
a:使用git apply –reject 0001-print-111.patch命令
这时候会在本地生成一个.rej文件,里面会显示哪里冲突了。
.rej:

@@ -9,5 +9,6 @@ public class MainActivity extends AppCompatActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
+        System.out.println("111");
     }
 }
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("11122");
    }
}

把冲突的地方改正过来

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("111");
    }
}

b:add冲突文件
c:git am –resolved

I (pull 出现问题)

error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm '
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

解决方法:使用git status,查看Unmerged paths:
(use "git add ..." to mark resolution)
这项列出的所有文件,将其add并且commit,然后在pull就可以了。

微信公众号:
Git常见问题_第2张图片
QQ群:365473065

你可能感兴趣的:(Git)