# 工作中使用Git遇到的问题

# 1.合并之前提交或保存修改

commit your changes or stash them before you can merge 这种情况是因为别人修改刘文件并提交,你修改的文件涉及到别人修改到文件。git pull会出现以上情况。

  • 解决办法:
    • 放弃修改,可以先代码做备份再回退,继续git pull
    • 利用stash数据存储(顺序:git stash ---> git pull ---> git stash pop)

    TIP

    1. git stash:备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
    2. git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
    3. git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
    4. git stash clear: 清空Git栈。此时使用图形化工具会发现,原来stash的哪些节点都消失了。
    • 放弃本地修改,直接覆盖
    git reset --hard
    git pull
    
    1
    2

# 2. 合并代码到fork仓库,出现冲突

  • 解决办法:
    • fork仓库新建一个临时分支
    • 跟原本的仓库建立联系:git remote add upstream xxxx (xxxx指原本仓库地址)
    • 拉取原本仓库source branchfork仓库本地:git fetch upstream test:upstream-test (重命名成upstream-test,避免跟自身test分支冲突)
    • 然后合入并解决冲突,合入:git merge upstream-test
    • 把临时分支推到远程