• Git常见问题及解决方案


    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
  • 相关阅读:
    sql server不存在或访问被拒绝
    维护Sql Server中表的索引
    雷声大雨点小-参加江西省网站内容管理系统培训有感
    关于WINFORM中输入法的设置
    虚拟主机下asp.net 2.0的导航控件treeview,menu等出错。
    css背景图片不重复
    网上寻宝惊魂记
    一个不大注意的存储过程的小细节。
    css——之三行三列等高布局
    今天才发现ff不支持navigate。
  • 原文地址:https://www.cnblogs.com/sunny3158/p/16635986.html
Copyright © 2020-2023  润新知