git开发实战:认识git
git简介:
git是分布式版本控制系统,相比较svn相比,git会在本地保存完整的提交记录,即使远程服务器宕机数据消失,可以将本地分支提交到远程服务器,本地分支会保存完整的记录。只要文件提交到git中,就能保证这个文件永远不会丢失,可以根据提交id来找到这个文件。
git上每次提交记录会记录上次提交的id,git是保存和当前提交文件和前一个提交文件对比,来保存,这样减少保存的空间。
git的文件状态分为3中:
已修改--已修改文件是保存在当前工作区,
已暂存--将工作区修改的文件保存到缓存区中
已提交--将缓存区中的文件提交到对象库
git设置用户名可以分为3中,分别是全局、用户和本项目,在具体项目中使用哪个用户优先的优先级逐渐降低
针对系统:git config --system user.name 'system name'
针对用户:git config --global user.name 'global name'
针对项目:git config --local user.name 'local user'
git简单命令
1. git init 初始化本地仓库
2. git add . 将工作区修改的文件保存到缓存区中 git add hello.txt
3. git commit 将缓存区中的文件添加到对象库 git commit -m '添加hello.txt文件'
git reset --hard commit 回退到commit位置 ,在推送远程分支 git push -f 因为远程分支比本地分支commit提前,所以要强制推送,丢失commit后的提交
git revert -n commit,反做commit版本,不会影响后面操作 git commit -m "revert add text.txt" git push 提交并推送,只丢失
revert相当于逆向操作,回退到上一步commit的内容
4. git status 查看文件状态
git rm hello.txt 删除文件 rm hello.txt删除文件
5. git rm --cached hello.txt 将添加到缓存区中的hello.txt文件回退到工作区
6. git HEAD hello.txt 另外一种将缓存区的文件回退到工作区
7. git log 查看提交日志 git log -2 查看最近两次提交日志
git log pretty=online 日志以一行显示
git log --graph 以图型化显示提交记录
git reflog 记录所有的操作日志
8. git branch 查看所有分支
git branch newbranch 创建新分支
git checkout newbranch 切换到新分支
git checkout -b newbranch2 新建并切换分支
9. git merge newbranch 将newbranch分支内容合并到本分支上
git merge --no-ff dev 以提交的方式合并分支
合并时如果new分支内容高于现在分支的内容,即new分支在本分支基础上还有提交,这时将采用fast ford快速合并
合并时如果不是上面的情况,可能会存在冲突,当冲突时,需要手工解决冲突
10. git branch -m dev1 devlop 将dev1分支修改为devlop
11. git stash 保存当前分支修改的内容临时保存
git stash list 列出stash内容
git stash pop 先恢复,再将已恢复的stash删除
git stash apply 恢复stash,但不删除
git stash drop stash{0} 删除stash0
git stash -m '设置保存当前stash备注'
12. 标签
git tag v1.0
git tag v2.0 -m '这时带有注释的标签'
git tag -d v1.0 删除v1.0标签
git tag 列出所有标签 git tag -l ‘*2’ 列出标签结尾是2的所有标签
13 diff
git diff 比较工作区和缓存区文件之间不同
git diff HEAD 比较工作区和最近一次提交文件的不同
git diff -cached 比较最新提交和缓存区文件不同
14 git pull git push
git remote add origin git地址
git push -u origin master 推送
git pull 拉取最新分支,git fetch+git merge
git push 推送最新分支,git fetxh+git merge
git remote show 显示远程分支 git remote show origin 详细显示origin分支
git同一个分支会存在3份,分别是本地分支,本地远程分支(远程分支,只读),远程分支,
在pull时,首先将远程分支的最近一次提交id同步给本地远程分支,然后后本地远程分支和本地分支合并(可能会产生冲突),提交时也是这样。
15. 将本地分支推送到远程分支上
git push origin src:desc 将本地的src分支内容,推送到远程desc分支
git push origin :desc 将空分支推送到远程,远程分支被删除
git push origin --delete dev 删除分支
git push --set-upstream origin dev1:dev2 将本地的dev1分支创建到远程的dev2分支上
16 远程分支修改名字只能先删除分支,再将本地分支推送大远程分支上
17 建议本地分支和远程分支名一致