第1个问题: 解决GIT代码仓库不同步
今天在执行git pull时出现:
- [root@gitserver /data/work/www/rest/lib/Business/Inventory]# git pull
- Enter passphrase for key '/root/.ssh/id_rsa':
- Updating 70e8b93..a0f1a6c
- error: Your local changes to the following files would be overwritten by merge:
- rest/lib/Business/Inventory/ProductStatus.php
- Please, commit your changes or stash them before you can merge.
- Aborting
解决方法:
执行git checkout -f,然后再执行git pull重新checkout
- [root@gitserver /data/work/www/rest/lib/Business/Inventory]# git checkout -f
- Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.
再执行git pull时就可以了:
- [root@gitserver /data/work/www/rest/lib/Business/Inventory]# git pull
- Enter passphrase for key '/root/.ssh/id_rsa':
- Updating 70e8b93..a0f1a6c
- Fast-forward
- rest/lib/Business/Inventory/ProductStatus.php | 1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
- mode change 100644 => 100755 rest/lib/Business/Inventory/ProductStatus.php
第2个问题: git pull的默认地址问题.
1.git处于master这个branch下时,默认的remote就是origin;
2.当在master这个brach下使用指定remote和merge的git pull时,使用默认的remote和merge。
但是对于自己建的项目,并用push到远程服务器上,并没有这块内容,需要自己配置。
如果直接运行git pull,会得到如此结果:
#当执行git pull之后的提示:
- $ git pull
- Password:
- You asked me to pull without telling me which branch you
- want to merge with, and 'branch.master.merge' in
- your configuration file does not tell me, either. Please
- specify which branch you want to use on the command line and
- try again (e.g. 'git pull <repository> <refspec>').
- See git-pull(1) for details.
- If you often merge with the same branch, you may want to
- use something like the following in your configuration file:
- [branch "master"]
- remote = <nickname>
- merge = <remote-ref>
- [remote "<nickname>"]
- url = <url>
- fetch = <refspec>
- See git-config(1) for details.
#解决方法, 通过git config进行如下配置.
- git remote add -f origin git@192.168.21.44:rest.git
- git config branch.master.remote origin
- git config branch.master.merge refs/heads/master
转载于:https://blog.51cto.com/ritto/741342