首页

关于使用git bash常用操作命令使用实践后整理汇总

标签:git命令,bash,git merge,git命令行,常用命令,项目分支命令,移交代码,远程命令,     发布时间:2018-07-25   

一、项目分支命令

#1.克隆项目命令@b@git  clone  net/code/test.git@b@#2.查看分支@b@git  branch@b@#3.创建分支@b@git branch 20180701 @b@#4.切换分支2018630@b@git  checkout  2018630@b@git  checkout –b  2018630 @b@#5.删除分支@b@git branch –d 2018630

二、移交代码

#1.提交文件到暂存区@b@git add  文件目录/文件名@b@#2.提交所有文件暂存区@b@git add  -A @b@git  add  .@b@#3.提交本地分支注解@b@git commit  -m  “标签注解”@b@#4.将远程代码同步到本地@b@git pull origin 2018630@b@#5.推送本地仓库分支20180701到remote@b@git push origin 20180701@b@#6.合并分支,如用冲突通过合并分支时必须使用--no-ff参数,以保留合并历史轨迹@b@git merge --no-ff  origin 20170701

三、回滚版本

需回滚代码时,就需要用到git revert或git reset命令,具体区别如下

1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。 @b@2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,@b@导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。 @b@3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

1.git reset命令 - 直接删除指定的commit,把你现在这个branch的最新的commit移到你指定的commit

reset命令@b@(1):git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息@b@(2):git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可@b@(3):git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容(这个要特别注意,因为本地代码会修改)
#1.提交代码时,add了多余的文件,想回退取消,则可以使用命令@b@git reset HEAD <file>...@b@#2.回退所有内容到上一个版本(本地修改代码不变)@b@git reset HEAD^ @b@#3.向前回退到第3个版本@b@git reset –soft HEAD~3 @b@#4.回退a 这个文件的版本到上一个版本(本地修改代码不变)@b@git reset HEAD^ a @b@#5.回退到某个版本(本地修改代码不变) - 首先    git log 查看版本 id然后回退到某个版本@b@git reset id@b@#6.将本地的状态回退到上个版本(本地修改丢失)@b@git reset --hard  HEAD^ @b@#7.将本地的状态回退到某个版本(本地修改丢失)@b@git reset --hard  XXXXXXX @b@#8.将本地的状态回退到和远程的一样@b@git reset –hard origin/master

2. git revert命令 - 撤回指定版本的内容并提交一个新的commit,不影响之前提交的内容

# 撤销前一次 commit@b@git revert HEAD    @b@# 撤销前前一次 commit@b@git revert HEAD@b@# 撤回指定commit-id#比如:git revert 0818badf6882ea2664a205bc8ef3a85425bb2537@b@git revert commit-id @b@#git提示有冲突要解决,继续保留冲突@b@git revert --continue@b@#取消撤回@b@git revert --abort

四、远程命令

git remote show origin # 查看远程服务器仓库状态@b@git remote  add  origin  http://xxx  --连接远程仓库@b@git remote  rm  origin     -- 删除远程仓库 @b@git  diff  --比较暂存区和工作区差异@b@git  diff  --cached   --比较暂存区和历史的差异@b@git  diff  master  --比较最新历史区和工作区的差异

五、其他

git log@b@     show commit history of a branch.@b@     git log --oneline --number: 每条log只显示一行,显示number条.@b@     git log --oneline --graph:可以图形化地表示出分支合并历史.@b@     git log branchname可以显示特定分支的log.@b@     git log --oneline branch1 ^branch2,可以查看在分支1,却不在分支2中的提交.^表示排除这个分支(Window下可能要给^branch2加上引号).@b@ @b@     git log --decorate会显示出tag信息.@b@     git log --author=[author name] 可以指定作者的提交历史.@b@     git log --since --before --until --after 根据提交时间筛选log.@b@     --no-merges可以将merge的commits排除在外.@b@     git log --grep 根据commit信息过滤log: git log --grep=keywords@b@ @b@     默认情况下, git log --grep --author是OR的关系,即满足一条即被返回,如果你想让它们是AND的关系,可以加上--all-match的option.@b@ @b@     git log -S: filter by introduced diff.@b@     比如: git log -SmethodName (注意S和后面的词之间没有等号分隔).@b@ @b@     git log -p: show patch introduced at each commit.@b@     每一个提交都是一个快照(snapshot),Git会把每次提交的diff计算出来,作为一个patch显示给你看.@b@     另一种方法是git show [SHA].@b@ @b@     git log --stat: show diffstat of changes introduced at each commit.@b@     同样是用来看改动的相对信息的,--stat比-p的输出更简单一些.