虽然使用 SourceTree 来进行版本管理是不错的,但是最近事情不多,就学习下 Git 的命令行,顺便复习一波,感觉也不错,蛮方便的。现在记录如下:
名词解释
1. 版本回退:Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向指定的 commit_id;
2. 工作区(Working Directory):就是你在电脑里能看到的目录,比如下面我们创建的learngit文件夹就是一个工作区;
3. 版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库;Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD,如下图:
git工作区域.jpeg
们把文件往Git版本库里添加的时候,是分两步执行的:
* 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
* 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
命令行
1. 安装git :sudo apt-get install git
2. 创建版本库:cd 到目录,git init
3. 把文件添加到仓库:git add
4. 把文件提交到仓库并说明提交内容:git commit -m "XXX"
5. 显示从最近到最远的提交日志:git log
6. 每次提交一行显示:git log --pretty=oneline
7. 回退到上一个版本:git reset --hard HEAD^
8. 回退到指定版本:git reset --hard commit_id
9. 记录操作的每一次命令:git reflog(会显示commit_id)
10. 查看工作区当前状态:git status
11. 查看工作区和版本库里面最新版本的区别:git diff HEAD -- readme.txt
12. 撤销修改(add 前):git checkout -- file_name,没有--就变成了“切换到另一个分支”的命令,撤销修改就回到和版本库一模一样的状态
13. 撤销修改(add 后):git reset HEAD file_name,可以把暂存区的修改撤销掉(unstage)
14. 添加远程仓库:git remote add origin XXX,其中 XXX 为仓库地址
15. 把本地库的所有内容推送到远程库上:git push -u origin master,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,使用 git push origin master
16. 从远程库克隆:git clone XXX ,其中 XXX 为仓库地址
17. 查看当前分支:git branch
18. 切换分支:git checkout 分支名
19. 创建dev分支,并切换到dev分支:git checkout -b dev
20. 合并指定分支到当前分支:git merge(禁用fast-forward:git merge --no-ff -m "merge with no-ff" dev)
21. 删除分支:git branch -d <name>
22. 分支合并图:git log --graph (git log --graph --pretty=oneline --abbrev-commit)
23. 把当前工作现场“储藏”起来:git stash
24. 查看“暂存列表”:git stash list
25. 恢复暂存区域:git stash apply,恢复后stash内容并不删除
26. 恢复暂存区域:git stash pop,恢复后stash内容删除
27. 删除暂存区域:git stash drop
28. 恢复指定的stash: git stash apply stash@{0}
29. 强行删除分支:git branch -D 分支名
30. 查看远程库的信息:git remote(git remote -v 显示更详细的信息)
31. 推送分支:git push origin master,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
32. 新建一个标签:git tag <name>,默认为HEAD,也可以指定一个commit id
33. 指定标签信息:git tag -a <tagname> -m "blablabla..."
34. 用PGP签名标签:git tag -s <tagname> -m "blablabla..."
35. 查看所有标签:git tag
36. 查看标签的说明文字:git show <tagname>
37. 推送一个本地标签:git push origin <tagname>
38. 推送全部未推送过的本地标签:git push origin --tags
39. 删除一个本地标签:git tag -d <tagname>
40. 删除一个远程标签:git push origin :refs/tags/<tagname>
其他命令行:
1. ls -ah:可以看见隐藏的文件
网友评论