比较仔细的学习了一遍Git,记录一下常用的命令~
查看Git版本
1 | git --version |
配置Git
1 | git config --global/local/system user.name "yourname" |
查看Git配置
1 | git config --list --global/local/system |
初始化Git仓库
1 | git init folder_name |
将文件加入暂存区
1 | git add file_name/./-u |
将暂存区commit
1 | git commit -m "commit注释" |
修改暂存区文件一步提交
1 | git commit -am"commit注释" |
查看缓存区状态
1 | git status |
查看Git日志
1 | git log --all |
将暂存区文件重命名
1 | git mv old_name new_name |
清空暂存区(慎用)
1 | git reset --hard |
查看分支
1 | git branch -av |
创建分支
1 | git branch branch_name hash/branch_name |
切换分支
1 | git checkout branch_name/hash |
创建并切换分支
1 | git checkout -b branch_name/hash |
查看帮助
1 | git help --web log |
查看图形化界面
1 | gitk --all |
git目录文件
1 | . |
查看.git内文件类型或内容
1 | git cat-file -t/-p file_name/hash |
commit、tree和blob的关系
1 | ├── commit |
分离头指针
1 | 当变更工作于无分支状态,即HEAD不指向分支,处于分离头指针状态,一般是直接用git checkout hash时会处于此状态,解决方法为git branch branch_name hash将分离头指针创建分支 |
HEAD与branch的关系
1 | HEAD指向分支、分支指向提交的commit,因为HEAD根本指向于commit |
diff两个分支
1 | git diff hash1/file_name1 hash2/file_name2 |
删除分支
1 | git branch -d/-D branch_name |
没更新完,醒了再更~
修正最近的一次commit
1 | git commit --amend |
合并commit/修改不相邻commit的message
1 | git rebase -i hash_parent |
为当前分支打标签
1 | git tag tag_name |
对比暂存区与HEAD不同
1 | git diff --cached |
对比工作区与暂存区区别
1 | git diff (file_name) |
取消暂存区部分文件的修改,将暂存区状态恢复至HEAD
1 | git reset HEAD -- file_name |
将工作区文件恢复至暂存区状态
1 | git checkout -- file_name |
取消最近几次提交,回退至指定分支(慎用)
1 | git reset --hard hash |
对比分支(中文件)的不同
1 | git diff branch1_name/hash1 branch2_name/hash2 -- file_name |
删除工作区和暂存区文件
1 | git rm file_name |
存放当前暂存区状态至暂存列表
1 | git stash |
查看暂存列表
1 | git stash list |
暂存列表出栈,切换至相应暂存区状态
1 | git stash pop :出栈并不在栈中 |
不需要git管理的文件
1 | 由.gitignore文件管理 |
克隆分支到本地
1 | git clone --bare 协议地址(哑协议/智能协议/http/https/ssh) folder_name |
查看远程仓库
1 | git remote -v |
添加远程仓库地址
1 | git remote add respository_name respositort_address |
提交本地仓库至远端分支
1 | git push respository_name branch_name |
本地生成ssh密钥
1 | ssh-keygen -t rsa -b 4096 -C "email" |
将远程分支拉至本地但不自动合并
1 | git fetch respository_name |
手动合并两个分支
1 | git merge respository_name/branch_name |
将远程分支拉至本地并自动合并
1 | git pull respository_name branch_name --allow-unrelated-histories |
解决文件冲突
- 不同文件
- 同一文件不同区域
- 同一文件同一区域
- 更换文件名和内容
- 更改不同文件名
本文作者:
yd0ng
本文链接: https://yd0ng.github.io/2020/01/13/Git%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://yd0ng.github.io/2020/01/13/Git%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!