一、项目分支命令
#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的输出更简单一些.