Git使用的常见问题及解决方案

183 阅读2分钟

一、 本地已经存在的项目/分支与如何远程仓库关联

git remote add origin <your-repo-git-url>

二、 git代码提交了,发现有问题怎么撤回提交

git reset HEAD^ //撤消上一次的commit

git reset HEAD~2 //如果你进行了2次commit,想都撤回,可以使用.

如果想撤回某一次的提交:

1. git log //查看所有提交的版本
2. git reset --hard commitId //回退到指定版本的代码

撤回最近一次提交但保留更改

使用 --soft 选项,保留工作目录和暂存区的更改:

git reset --soft HEAD~1

撤回最近一次提交并取消暂存更改

使用 --mixed 选项(默认),保留工作目录的更改,但取消暂存:

git reset --mixed HEAD~1

三、 如果当前在a分支,但是pull了b分支,造成变基,怎么补救

方案a: 使用 git reflog 找回之前的提交历史

  1. Git 的 reflog 记录了所有分支的变更历史,
git reflog

输入示例:

abc1234 HEAD@{0}: pull origin b: Fast-forward
def5678 HEAD@{1}: commit: Your last commit on branch a
...
  1. 重置到误操作前的状态(例如 HEAD@{1}):
git reset --hard HEAD@{1}

方案b:强制回退到远程分支的状态

如果误操作后还没有推送到远程仓库,可以直接将本地分支重置为远程分支的状态。

操作步骤:

  1. 获取远程分支的最新状态:

    git fetch origin
    
  2. 将本地 a 分支重置为远程 a 分支的状态:

    git reset --hard origin/a
    

四、提交到了错误的分支

解决方法:

  1. 切换到正确的分支:
git checkout <correct-branch>
  1. 将提交从错误分支移动到正确分支:
git cherry-pick <commit-hash>
  1. 删除错误分支上的提交:
git checkout <wrong-branch>
git reset --hard HEAD~1

五、合并分支时出现冲突

解决方法:

  1. git status 查看冲突文件。
  2. 手动处理冲突文件。
  3. 暂存并合并代码
git add <file> 
git commit

六、提交后发现漏掉了某些文件

解决方法:

  1. 添加漏掉的文件:
git add <file>
  1. 追加到上一次提交:
git commit --amend