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 建议本地分支和远程分支名一致

最新文章

  1. CSS实现元素水平垂直居中—喜欢对称美,这病没得治
  2. layer弹出层全屏及关闭
  3. Ubuntu W: GPG error: http://archive.ubuntukey....NO_PUBKEY 8D5A09
  4. javascript同名变量
  5. Multiple MySQL running but PID file could not be found
  6. 脊柱外科病人资料管理系统的界面设计分析(2)--JOA评分记录的实现
  7. 再说Play!framework http://hsfgo.iteye.com/blog/806974
  8. iOS开发之保存照片到系统相册(Photo Album)
  9. webpack文档
  10. 1109HTML学习
  11. WISPr1.0
  12. HDU 1258 Sum It Up(DFS)
  13. Python日志模块logging用法
  14. css颜色表示法
  15. 解题(TakeBusChooseLine)
  16. Gradle全局变量定义及引用
  17. Vue之单文件组件的数据传递,axios请求数据及路由router
  18. 用StringHelper.Split分解字符串
  19. python 计时程序运行时间
  20. 'No Transport' Error w/ jQuery ajax call in IE

热门文章

  1. springboot异步任务、定时任务
  2. vuejs基础-计算器案例
  3. sed查找实例:mysql_process.sh
  4. Codeforces 1082D (贪心)
  5. CSU 1092 Barricade
  6. .net core 简单集成JWT报No authenticationScheme was specified, and there was no DefaultChallengeScheme found错误
  7. redis的hmset乐观锁的实现
  8. 2018-10-11-WPF-拖动滚动
  9. Java并发(具体实例)—— 构建高效且可伸缩的结果缓存
  10. sql for loop