基本操作
1、初始化
- 自动创建文件夹,并生成git版本库
git init 文件夹名称
2、改动文件添加版本库
git add welcome.txt
3、提交
// 有改动信息
git ci -m '提交信息'
// 无改动信息(空白提交)
git ci --allow-empty --allow-empty-message -m '提交信息'
// 对本地所有变更的文件执行提交操作,包括对本地修改文件和删除的文件,但是不包括未被版本库跟踪的文件
git ci -a
4、修改提交信息
git commit --amend --allow-empty --reset-author
5、查看log日志
git log --pretty=fuller
// 退出log日志
":" + "q"
6、备份工作区
git clone 工作区文件夹名称 备份的工作区文件夹
7、查看暂存区
git status -s(简洁方式)
8、取消工作区文件修改
git checkout -- 文件名称
9、查看HEAD指向的目录树信息
git ls-tree-l HEAD
结果
100644(文件属性rw-r--r--) blob(Git对象库中一个blob对象) b493a7f1744e9b001a540332a701c64a1df2bbab(该文件在对象库中对应ID) 18(文件大小) welcome.txt(文件名)
10、之前某个版本标识
HEAD:表示当前最新提交点
HEAD^:表示上一个提交点
HEAD^^:表示上上一个提交点
……
HEAD-100:表示往上100个提交点
11、切换不同提交点版本
git reset --hard 标识
(标识:可以是HEAD或者文件对象库中的ID前几位,通常前6、7位左右)
git reset --hard HEAD^
git reset --hard b493a7
git reset --hard 上一版本HEAD^
git reset --hard 下一版本(标识)
12、查看所有的提交记录
要想确定要回退的版本,通过git log
查看历史
要想重返未来的版本,通过git reflog
查看未来版本
git reflog
13、添加远端仓库
git remote add origin(仓库别名) git@github.com:GJBlog/Notes.git(仓库地址)
13、查看远端仓库地址
git remote -v
14、删除远端库
git remote rm origin(仓库别名)
13、本地仓库与远端仓库关联
git remote add origin git@github.com:GJBlog/LearnGit.git
15、推送远端仓库
git push (-u) origin master
origin:远端仓库名称
master:远端仓库分支
-u:关联本地和远端仓库后第一次推送
16、切换分支
git checkout 待切换分支名
17、撤销暂存区修改,内容重新放回工作区
git reset HEAD 文件名
18、从版本库中删除文件
git rm 文件名
19、创建新分支
git branch 分支名
20、切换分支
git checkout 分支名
21、创建新分支并切换到当前分支
git checkout -b 分支名
22、查看所有分支
git branch
23、删除分支
git branch (-d)(-D) 分支名
-D:强行删除
24、默认合并分支
git merge (--no-ff) dev(分支名)
合并dev(分支名)到当前分支
25、禁用Fast forward模式合并分支
--no--ff:表示禁用Fast forward
模式
git merge --no-ff -m "merge with no-ff" dev
25、查看分支合并图
完整版:git log --graph
简化版:git log --graph --pretty=oneline --abbrev-commit
26、贮藏当前文件
git stash
将当前工作区中所有改动的内容都贮藏
git stash list
展示已经贮藏的所有文件
27、恢复贮藏内容
git stash apply stash@{0}
恢复贮藏内容,但是在贮藏列表中并不会删除
git stash pop
恢复贮藏内容,并且在贮藏列表中删除
28、删除贮藏内容
git stash drop
删除单个贮藏内容
git stash clear
清空整个贮藏列表
注意点
若文件仅仅在工作区修改,未提交到暂存区,则直接使用
git checkout -- 文件名
可以撤销修改。若文件不仅在工作区修改,还提交到暂存区中,但是未
git commit
之前,则需要先使用git reset HEAD 文件名
将修改内容撤回到工作区中,接着再使用git checkout -- 文件名
将工作区中的修改丢弃,恢复到工作区改动之前。当文件提交到版本库中,通过
git checkout
只能恢复文件到最新版本,会丢失最近一次提交后你的修改的内容。通常情况下,合并分支时,如果可能Git会默认采用
Fast forward
模式,在这种模式下当删除分支后,会丢掉分支信息。如果强制禁用Fast forward
模式,Git会在merge时生成一个新的commit提交,这样在分支历史中就可以看到分支信息。