赞
踩
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
1.9:移除未被跟踪的文件 在利用 git
工作时,工程目录下经常会出现一些未跟踪文件,虽然 git
支持通过 .gitingore
文件添加一些忽略文件类型和文件目录。但有时需要清理一些临时文件和自动生成的文件,手动删除显得太麻烦,这时你可以利用 git clean
命令来帮你完成这项操作。git clean
命令支持以下参数:
git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>...
-d # 删除未跟踪目录以及目录下的文件,如果目录下包含其他git仓库文件,并不会删除(-dff可以删除)。
-f # 如果 git cofig 下的 clean.requireForce 为true,那么clean操作需要-f(--force)来强制执行。
-i # 进入交互模式
-n # 查看将要被删除的文件,并不实际删除文件
在删除前先查看有哪些文件将被删除运行:git clean -n
想删除当前工作目录下的未跟踪文件,但不删除文件夹运行(如果 clean.requireForce
为 false
可以不加 -f
选项):git clean -f
想删除当前工作目录下的未跟踪文件以及文件夹运行:git clean -df
2.0:git忽略某些文件提交
在项目中有些配置文件不需要提交,但是有同学在后面开发中发现在.igonore文件中无论如何都无法忽略某些文件的提交。原因在这里:
已经维护起来的文件,即使加上了gitignore,也无济于事。----
那么如何解决呢?方式如下
git update-index --assume-unchanged 要忽略的文件夹/文件夹下文件名
比如我要忽略项目下.idea文件夹下所有xml文件,idea下都是xml文件(我用的webstorm):
git update-index --assume-unchanged .idea/*.xml
如果要重新恢复提交,使用如下命令:
git update-index --assume-unchanged .idea/*.xml
这样每次提交就不会提交idea下的文件了。
进阶:
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.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
2.3 一般解决冲突的步骤是:
作者:Doing
链接:https://www.zhihu.com/question/21215715/answer/201900253
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。