码迷,mamicode.com
首页 > 其他好文 > 详细

git 使用

时间:2019-08-11 23:09:08      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:stream   git log   合并   状态   img   branch   href   --   情况   

相信小伙伴们对git不陌生吧,但是究竟git是怎么样工作的,它的构成又是怎么样的呢?我们来看看:

技术图片

上图很明显的说明,git是又4个部分组成的:

工作区域--add-->暂存区域--commit-->本地版本仓库--push-->远程版本仓库


 

基本指令

1. add

git add -u:将文件的修改、文件的删除,添加到暂存区。
git add .:将文件的修改,文件的新建,添加到暂存区。
git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。

虽然网上是如上这么说,但是我试过好像git add .  和git add -A 效果是一样的。

2.commit

commit -m:把暂存区的内容提交到本地版本区

commit -a -m:相当于git add -u和git commit -m组合

3.log

可以查看每个commit的版本号:

技术图片

4.reflog

和log很像,比log能看得更多,git reset也可以看到

技术图片

5.reset

reset: "git reset --hard 版本号" 执行这句就可以回滚代码回到对应的版本了,我们常用回滚本地分支的代码

其中版本号是上面红框的随机字符串,和git log的commit右边的字符串,一般取开头的几位就ok了

例如git reset --hard ad208

6.revert

revert:也是回滚版本,不过只是回滚代码,不回滚版本号,我们常用这个来回滚已经提交上远程分支的代码

例如:git revert 版本号 

ps:我们更多的会用到revert来回滚代码,如果用reset来回滚,很容易导致和远程分支发生冲突

当然我们revert后,通常会先commit然后pull一下代码来merge一下

7.checkout

checkout(checkout的本质其实都是checkout hash): 

git checkout master // 切换到master分支
git checkout tag123 // 切换到tag123这个标签对应的commit节点(注意:这样切换后,就不属于任何分支了,因为tag是只读的)
git checkout <hashStr> // 切换hash字串对应的某个commit节点(跟标签一样,这样切换后,就不属于任何分支了,因为tag是只读的)
git checkout ab30292fd7bab6beb46 -- package.json // 只把某个文件切换到某个commit节点的状态

 

checkout -b:

git checkout -b aaa // 从当前节点,创建并切换到aaa分支

新建的本地分支push到远端:

git push --set-upstream origin [新分支名]

8.merge

merge: merge aaa 合并aaa分支的代码

9.branch

branch: 列出本地分支

branch -r:列出远程分支

branch -a:列出全部分支

branch haha:创建叫haha的分支

branch -D haha:删除本地分支haha

branch -D -r origin/haha:删除远程分支haha

同步远端分支

10.clone

 git clone xxx.git "指定目录" :克隆远程仓库代码到指定目录

 

ps:上面所说的版本号可以是git reflog或者git log的版本号,也可以是某一个branch的名字或者head[~number]


回滚代码的总结:

  1. 自己的分支回滚直接用reset
  2. 公共分支回滚用revert
  3. 错的太远了,只能手动修改

 

10 .stash 

git stash 暂存本地修改

git stash pop 本地修改恢复到工作区

 

11. remote

git remote show origin 查看远端分支情况(包含和本地分支的关系)

git remote prune origin 删除本地对应远端已删除的分支

 

12. 批量删除branch(利用linux的grep工具)

git branch |grep "bugfix" |xargs git branch -d

 

13.让分支指向某次提交

git branch -f dev [hash]

 

14. 修改历史

git filter-branch

推荐阅读:Git 工具 - 重写历史

git 使用

标签:stream   git log   合并   状态   img   branch   href   --   情况   

原文地址:https://www.cnblogs.com/amiezhang/p/8351771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!