常用命令
- git status 对比状态
- git log 查看提交日志 git log --oneline 简化 (按q退出)
- git branch 分支名 (建立本地新分支)
- git checkout 分支名 (切换本地分支)
- git branch -d 分支名 (删除分支)
- 删除未合并的分支:git branch -D 分支名
- 在
pull
以后的主分支上git merge feature
,然后push
- git checkout -b feature2 命令(相当于 git branch feature2 和 git checkout feature2 两个命令的合体):
9、绘制提交简图:git log --decorate --all --graph --oneline
10、显示当前的 git 配置信息:git config
11、查看历史提交:git log
12、显示需要你解决的冲突:git status
可能遇到的问题:
问题 | 解决方法 |
---|---|
覆盖暂存区域和工作目录 (当然,在没有保存更改之前是不会让你切换分支的) | checkout |
将工作区+暂存区强制统一为远程仓库的某次提交 | |
将工作区统一为暂存区代码 | |
摆脱vim输入面板 | Esc按一次,大写的Z按两次 请按下快捷键 Shift + z + z(其实就是连续两个大写 Z)来退出,或者可以按下冒号(:),然后输入 q! 退出。那么会 Git 会保留旧的提交说明。wq也可以 |
回滚指针仅仅用来撤销提交 | ,( git reset --soft HEAD~10 )(此时执行 git log 命令,也不会再看到已经撤消了的那个提交) |
回滚用GIT仓库来重置暂存 | (git reset HEAD~ 命令其实是 git reset --mixed HEAD~ 的缩写) |
回滚用GIT仓库来重置暂存和工作区 | (git reset --hard HEAD~ ) |
1、需要建立规则,忽略一些文件或者依赖,以后不再进行版本控制
需要忽略某个文件的跟踪
1、使用.gitignore忽略文件
为了让git忽略指定的文件和文件夹,我们需要在项目的根目录当中创建.gitignore文件,
在.gitignore文件当中,一行代表一条忽略规则,如果是一个带“.”这种有后缀的字符串那么git就会忽略这个文件。“*”表示的就是选中所有,如果没有“.”就表示一个文件夹。下面举个例子。
删除文件的追踪
.gitignore 文件的用途,只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。
对于已经提交过文件,想要让ignore生效, 也是有办法的:
使用git rm --cached从 Git 的数据库中删除对于该文件的追踪;
把对应的规则写入 .gitignore,让忽略真正生效;
提交+推送。
我们需要在目录总创建一个.gitignore文件,可以在目录中右键选择git bash Here,然后输入touch .gitignore,如下图所示:
https://www.jianshu.com/p/699ed86028c2
2、已经推送(push)过的文件,想从git远程库中删除,并在以后的提交中忽略,但是却还想在本地保留这个文件 执行命令
git rm --cached Xml/config.xml
git rm --cached 5/* 5文件夹下所有文件
.gitignore 语法规范
.gitignore 可以使用标准的 glob 模式匹配(glob 模式是指 shell 所使用的简化了的正则表达式):
所有空行或者以注释符号 # 开头的行都会被 Git 忽略;
星号(*)匹配零个或多个任意字符;
[abc] 匹配任何一个列在方括号中的字符;
问号(?)只匹配一个任意字符;
[a-z] 匹配所有在这两个字符范围内的字符;
匹配模式最后跟反斜杠(/)说明要忽略的是目录;
匹配模式以反斜杠(/)开头说明防止递归;
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
14、查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作):git reflog
15、只移动Git仓库的指针指向可以撤销上一次提交:git reset --soft HEAD~