Git是一个快速,开源,分布式的版本控制系统,用来保留工程源代码历史状态的命令行工具,类似于SVN,CVS或者Perforce等工具。
通过 git commit告诉 Git 你想保存一份代码快照, Git 就会为你的项目中的各个文件的当前状态存一份记录。之后,绝大部分的 Git 命令都围绕这些记录展开。 比如查看它们的区别(diff),提取它们的内容等.
git仓库,存放你要保存快照数据(本地初始化一个目录)
安装git,并初始化
Git初始化配置
1) 配置使用git仓库的用户名
git config --global user.name "Your Name Comes Here"
2) 配置使用git仓库的邮箱
git config --global user.email 'xxx'
便于远端区分commit对应提交人的信息
生成SSH密钥过程
(通过邮箱生成)
$ ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”
设置密码,或默认为空
最后得到了两个文件:id_rsa和id_rsa.pub
将id_rsa.pub的内容添加到远端公钥管理即可
命令说明列表
1. 将一个目录初始化为Git仓库
git init
生成目录如下:./ ../ .git/
2. 显示文件列表
ls(ll, ll -ah)
克隆一个Git仓库到本地
git clone git://xxxxx.git
3. 查看文件在工作目录与缓存的状态
可以得知哪些文件发生了变化,哪些文件还没有添加到git库中
git status
4. 将当前工作目录中更改或者新增的文件加入到Git的索引
加入到Git的索引中就表示记入版本历史中,这也是提交之前所需要执行的一步。
git add --all
或者
git add 单个文件
“AM” 状态是该文件在将它添加到缓存之后又有改动。这意味着如果现在提交快照, 我们记录的将是上次执行git add的时候的文件版本,而不是现在在磁盘中的这个。 Git 并不认为磁盘中的文件与你想快照的文件必须是一致的 —— (如果你需要它们一致,)得用 git add命令告诉它。
5. 显示已写入缓存与已修改但尚未写入缓存的改动区别
git diff
6. 记录缓存内容的快照
-m 选项以在命令行中提供提交注释
-a 想要快照所有所做的改动的时候执行
-n 代码不校验语法规范
git commit -a -n -m '提交信息描述'
7. 取消缓存已缓存内容
git reset HEAD <filename> to unstage
8. 将文件从缓冲区删除
删除 Git 追踪的文件。它还会删除你的工作目录中的相应文件。
git rm
9. 显示当前分支
git branch
10. 显示所有分支(包括远端分支)
git branch -a
11. 切换到新的分支
git checkout <branchname>
若创建并切换分支
git checkout -b <branchname>
12. 合并分支
git merge
合并冲突
13. 删除远端分支
git branch -r -d origin/<branchname>
git push origin :branchname
14. 将本地commit的代码更新到远端仓库
如果远端有该分支则合并;如果没有则创建
git push origin branchanme
15. 从服务器的仓库中获取代码,和本地代码合并
git pull (或 git pull origin branchname)
16. 从服务器拉取分支,并在本地创建分支
git fetch origin branchname:banchname
17. 查询远端仓库信息
git remote -v
18. 查看历史日志,包含每次的版本变化。
每次版本变化对应一个commit idgit loggit log -1
-1的意思是只显示一个commit,如果想显示5个,就-5。不指定的话,git log会从该commit一直往后显示。
19. 显示某个特定作者的提交
git log –author( git log --author='jackie')
20. 添加一个远端仓库
git remote add
21. 删除一个远端仓库
git remote rm
22. 合并多个commit
git rebase -i HEAD~X
完成后git push -f (或者 git push origin branchname -f )
rebase前一般要git log查看需要合并的几个连续的commit
23. 图形化展示commit
git log --graph --pretty
24. 版本操作
git tag 显示所有版本(创建,删除等此处省略)
25. 文件暂存
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
最后,建议安装、使用tig工具,是图形化的git工具,但是命令弱于git,可以组合使用。
参考文档:
https://git-scm.com/
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
https://github.com/git/git/