1:命令行操作
1.1:查看当前所在分支:git branch -a 或者 -v
1.2 : 如果存在新分支,而使用上述命令未显示,使用即可:git fetch
1.3:切换分支:git checkout branchname
1.4:解决git pull 每次都需要输入用户名密码的问题: git config --global credential.helper store(设置完还需输入1次,下次生效)
1.5:创建分支 git branch branchname
1.6:删除分支 git branch -d branchname 或者 git branch -D branchname(强制删除)
1.7:合并分支:如果要将开发中的分支(develop),合并到稳定分支(master),首先切换的master分支:git checkout master。然后执行合并操作:git merge develop。如果有冲突,会提示你,调用git status查看冲突文件。解决冲突,然后调用git add或git rm将解决后的文件暂存。所有冲突解决后,git commit 提交更改。
1.8:暂存当前分支:git stash 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug, 先stash, 使返回到自己上一个commit, 改完bug之后再stash pop, 继续原来的工作。
基础命令:
$git stash
$do some work
$git stash pop
进阶:
git stash save "work in progress for foo feature"
当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,
’git stash list’ 命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。
git stash # save uncommitted changes # pull, edit, etc. git stash list # list stashed changes in this git git show stash@{0} # see the last stash git stash pop # apply last stash and remove it from the list git stash --help # for more info
2:报错信息:
2.1:error: Your local changes to the following files would be overwritten by merge:
protected/config/main.php
Please, commit your changes or stash them before you can merge.
解决:如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,
在发布这个配置文件的时候,会发生代码冲,如果希望保留生产服务器上所做的改动,仅仅并入新配置项,
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
2.2 git切换分支报错:error: pathspec 'origin/XXX' did not match any file(s) known to git.
项目上有一个分支test,使用git branch -a看不到该远程分支,直接使用命令git checkout test报错
解决方法:
1、执行命令git fetch取回所有分支的更新
2、执行git branch -a可以看到test分支(已经更新分支信息)
3、切换分支git checkout test