sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Git常见问题及解决方案

1.执行git commit -m "中文"后出现乱码,需要进行如下设置

git config --global i18n.commitencoding utf-8

2.修改项目后提交代码

  1. git add .
  2. git commit -m "最新提交"
  3. #查看状态
  4. git status
  5. git push

2.1 git add .有问题,想撤销,则

  1. #两种情况:
  2. git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
  3. git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了

2.2 git commit后想撤销,但是需要保留git add . 的操作 

git reset --soft HEAD^

2.3 git push 报错,提交不上去

     例如:报错内容如下
     hint: Updates were rejected because the tip of your current branch is behind
     hint: its remote counterpart. Integrate the remote changes (e.g.
     hint: 'git pull ...') before pushing again.
     hint: See the 'Note about fast-forwards' in 'git push --help' for details.

git push -u origin master -f 

 

2.4.删除文件后需要 git add -A, 光 git add. 不行,区别如下:

    git add 的几种参数区别

    git add -A 保存所有的修改 
    git add . 保存新的添加和修改,但是不包括删除 
    git add -u 保存修改和删除,但是不包括新建文件。

2.5 有时候代码明明git commit成功了,但是pull后却提示Anything to update,git log也有日志提交记录,这可能是由于没有关联远程仓库的事情

  1. #新增远程仓库地址,如果不确定远程仓库地址是否存在,那也可以执行下面命令,存在会给予提示
  2. git remote add origin 远程仓库地址
  3. #关键的一步
  4. git pull origin master --allow-unrelated-histories
  5. #本地仓库也远程仓库关联
  6. git branch --set-upstream-to=origin/master master

如果不执行git pull origin master --allow-unrelated-histories,直接执行git branch --set-upstream-to=origin/master master,可能会出现如下错误

  1. $ git branch --set-upstream-to=origin/master master
  2. error: the requested upstream branch 'origin/master' does not exist
  3. hint:
  4. hint: If you are planning on basing your work on an upstream
  5. hint: branch that already exists at the remote, you may need to
  6. hint: run "git fetch" to retrieve it.
  7. hint:
  8. hint: If you are planning to push out a new local branch that
  9. hint: will track its remote counterpart, you may want to use
  10. hint: "git push -u" to set the upstream config as you push.

 

3.git在push/commit时需要设置user.name和user.email,否则会报错

  1. git config user.name "newName"
  2. git config user.email "newEmail"
  3. #查看设置的user.name和user.email
  4. git config user.name
  5. git config user.email

需要修改user.name和user.email见https://blog.csdn.net/feeltouch/article/details/89290949

4.删除远程分支

#当前目录在/e,切换到要删除的目录temp
cd temp
#切换到master分支
git checkout master
#查看所有分支
git branch -a
#删除分支
git push origin --delete temp

最后输入密码即可

5.下载git项目

git clone -b 分支名 git地址 下载后本地的项目名

 

6.如果在没有更新远程分支到本地,但是执行提交代码操作后(本文2),就会出现如下错误

     遇到问题:

  1. On branch master
  2. Your branch and 'origin/master' have diverged,
  3. and have 1 and 2 different commits each, respectively.
  4. (use "git pull" to merge the remote branch into yours)
  5. Changes to be committed:
  6. (use "git reset HEAD ..." to unstage)

    执行如下命令即可:

        如果不执行git stash的话会报如下错误,是因为有未提交的修改,而rebase 在拉代码前要确保你本地工作区是干净的

  1. error: cannot rebase: You have unstaged changes.
  2. error: Please commit or stash them.

  #暂时保存修改

    git stash

   git rebase origin/master

   git pull --rebase

   #提交内容到远程分支

   git push origin master

 

注意:git pull --rebase的命令作用如下:

      a.把你 commit 到本地仓库的内容,取出来放到暂存区(stash)(这时你的工作区是干净的) 
      b.然后从远端拉取代码到本地,由于工作区是干净的,所以不会有冲突 
      c.从暂存区把你之前提交的内容取出来,跟拉下来的代码合并

6.1 git stash 遇到的坑

     由于没有执行任何操作 如 git add和git commit 就执行 git stash【执行6的完整操作】 就会出现本地编写代码消失,导致工作重做

可以采取如下方法进行恢复本地代码

    a 进入目录       项目名\.git\logs\refs

    b 打开图片所示stash文件,

             

     c 里面会出现如下字符串   eb0b60ad2c9a142b161e147dd5d2c4d24405a151

        #确认是否是消失的代码  

        git show eb0b60ad2c9a142b161e147dd5d2c4d24405a151

     d  是的话执行    git stash apply eb0b60ad2c9a142b161e147dd5d2c4d24405a151   进行恢复

    

7.拉取远程分支上面的代码

   

git pull origin master


7.1 git pull origin master后,报如下错误,本地修改与远程冲突:

error: Your local changes to the following files would be overwritten by merge
  1. #保存本地快照
  2. git stash
  3. git pull origin master
  4. #恢复快照中代码
  5. git stash pop

如果不想保存本地修改,拉取远程代码:

  1. git reset --hard
  2. git pull origin master

 

https://blog.csdn.net/qq_38796065/article/details/103668525
posted on 2022-08-29 14:56  sunny123456  阅读(233)  评论(0编辑  收藏  举报