Git更新本地仓库及冲突"Commit your changes or stash them before you can merge"解决

Git中从远程的分支获取最新的版本到本地有这样2个命令:

1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge

git fetch origin master
git log -p master..origin/master
git merge origin/master

以上命令的含义:

   首先从远程的origin的master主分支下载最新的版本到origin/master分支上
   然后比较本地的master分支和origin/master分支的差别
   最后进行合并

2. git pull:相当于是从远程获取最新版本并merge到本地

git pull origin master

上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

 

当遇到"Commit your changes or stash them before you can merge"冲突时,这表明GIt保护您本地的代码修改,避免重要的修改丢失。有三种方法解决:

1. 提交代码修改:

git commit -m "My message"

2. Stash it:

Stash存储充当堆栈,您可以在其中推送更改,并以相反的顺序弹出它们

存储:

git stash

进行合并,然后拉出存储的修改:

git stash pop

3. 丢弃本地的修改:

git reset --hard

或者

git checkout -t -f remote/branch

或者为特定文件丢弃本地修改:

git checkout filename

你可能感兴趣的:(Git更新本地仓库及冲突"Commit your changes or stash them before you can merge"解决)