标题大纲
常见命令
git init
本地库初始化
git config --global user.name zhangsan
设置张三用户的用户级别
git config --global user.email zhangsan@abc.com
设置张三用户的用户级别
git config --list --global
显示config的配置
gti status
查看工作区、暂存区的状态
git add readme.md
添加readme.md文件到暂存区
git commit -m "add new file" readme.md
将readme.md文件提交到本地库
git log
查看完整的历史提交记录
git log --oneline
查看历史记录,显示部分hash值
git log -n4
查看最近的4次历史
git log -n4 --oneline
组合查询
git log --all
查看所有分支历史
git log --all --graph
图形化查看分支历史
gitk
弹出图形化界面,查看分支历史
git reset --hard [索引值一部分]
版本后退或前进,取决于索引的相对位置
git reset --hard Head^^
版本后退两步
git reset --hard Head^n
版本后退n步
git reset --hard Head~n
版本后退n步
属性 | 含义 |
---|---|
soft | 仅仅在本地库移动HEAD指针 |
mixed | 在本地库移动HEAD指针、重置缓存区 |
hard | 在本地库移动HEAD指针、重置暂存区、重置工作区 |
git branch -v
查看所有分支
git branch [分支名称]
创建分支
git checkout [分支名称]
切换分支
git merge [需要合并的分支]
合并分支
git diff
比较多个文件
git diff [文件名称]
将工作区中的文件和暂存区做对较
git diff [本地库历史版本] [文件名称]
将工作区中的文件和本地库历史版本进行比较
git mv readme readme.md
文件重命名
.git目录
- .git/HEAD 存在当前工作在哪一个分支上
- .git/config 存放配置信息
- .git/refs/tags 存放标签信息
- .git/refs/master 存放master分支的指针指向哪一个commit
git常见使用场景
1. 删除不需要的分支
git branch -d 分支名
如果删除不掉就用 git branch -D 分支名
2. 修改最新的message
git commit --amend
3. 修改旧的message
git rebase -i 目标commit的父级
4. 把连续的几个commit合并成一个
git rebase -i 目标commit的父级
5. 把间隔的几个commit合并成一个
git rebase -i 目标commit的父级
6. 消除最近的几次提交
git reset --hard 目标commit
7. 查看不同提交的指定文件的差异
git diff temp master --index.html
8. 正确删除文件的方法
git rm 文件名
9. 开发中临时加塞了紧急任务如何处理
git stash
将手头的代码挂起到stash中
git stash list
查看stash中有无记录
git stash apply
将stash中的代码拉取到工作区
git stash pop
将stash中的代码拉取到工作区并弹出
10. 如何制定不需要git管理的文件
在 .gitignore文件中写入内容
11. 如何让工作区中的文件恢复和暂存区一样
git checkout --文件路径/文件名
12. 如何取消暂存区中部分文件
git reset HEAD --文件路径/文件名