git提交学习

1.提交:

gerrit提交:
git add .
//提交到暂存区
git commit -m "xxx"
//提交到本地仓库
git push origin HEAD:refs/for/dev
//提交到远程仓库(origin/dev)
gitLab提交:
git add .
//提交到暂存区
git commit -m "xxx"
//提交到本地仓库
git push origin HEAD:dev
//提交到远程仓库(dev)

2. 追加提交:

git commit --amend

3.git commit之后,想撤销:

HEAD@{1}  
可以这样使用,先git reflog 看看先回退到哪里。
HEAD^的意思是上一个版本,也可以写成HEAD~1
git reset --soft HEAD^ 
//撤销commit操作,但是add操作没有撤销(意思是本地修改还在)
git reset --hard HEAD^
//撤销commit和add操作(本地修改不在了)
git reset --mixed HEAD^
//撤销commit,并且撤销add(但是本地修改还在)
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
git reset xxx
//xxx是commitID,可以回到某个commitID下

4.git log 和git reflog的区别:

git log 命令可以显示所有提交过的版本信息
git log --pretty=oneline 只显示commitID和提交信息
git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)。
git reset --hard HEAD~1(或者git reset --hard HEAD@{1})退回到上一个版本.
用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid

git log --graph --pretty=oneline --abbrev-commit  
//用带参数的git log也可以看到分支的合并情况

5.拉取最新代码:

git pull

6.新建一个分支并跟踪远程分支

创建分支:git branch <name>
切换分支:git checkout <name>或者git switch <name>
创建+切换分支:git checkout -b <name>或者git switch -c <name>
git branch zyy
//新建一个zyy分支,不切换到zyy分支,没有跟踪远程分支
git checkout zyy
//切换到zyy分支
git branch --set-upstream-to origin/master
//跟踪远程分支master
git checkout -b zyy origin origin/master
//新建一个zyy分支切换到zyy下,并跟踪远程分支master。

7.查看区别

git diff:是查看 workspace(工作区) 与 index(暂存区) 的差别的。
git diff --cached:是查看 index(暂存区) 与 local repositorty(本地仓库) 的差别的。
git diff HEAD:是查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)

8.查看分支

git branch 
//查看当前分支
git branch -vv
//本地分支跟踪的远程分支,以及当前的分支情况

9.删除分支

删除分支:git branch -d <name>
git branch -d dev
//删除dev分支
git branch -D <name>
//如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除

10.合入分支 

合并某分支到当前分支:git merge <name>
git merge dev
//把dev分支合入到当前所在分支
//远程分支合入,远程dev合入到远程master

11.暂存分支(stash)

Git提供stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
//假如现在在dev分支作业,但是现在来了另一个任务,必须解决,但是dev分支还没有完成,这个时候可以将dev的分支暂时储存起来,使用stash。
git stash
//将写的代码暂存起来
git stash list
//查看暂存的内容。

现在需要将内容恢复,可以使用:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
二用git stash pop,恢复的同时把stash内容也删了;

使用完git stash pop之后,再用git stash list查看,就看不到任何stash内容了。
你可以多次stash,恢复的时候,先用git stash list查看,然后恢复指定的stash,用命令:
git stash apply stash@{0}

12.

 13.多人协作。

多人协作的工作模式通常是这样:

首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。

14.git pull 和git pull --rebase 

git reset --hard [hash值]  #回退到指定的版本

push之后,如果有新的代码,git pull --rebase.

git rebase之后可能还有冲突,解完冲突之后,(git add .) 之后,可以git rebase --continue

git rebase --abort
//取消rebase

git rebase master
//将提交到本分支的所有修改都移至master分支上(目前在dev分支上)

 15.merge

git merge dev
//合并指定分支到当前分支。
目前在master分支,将dev分支合入到当前master分支。(在dev分支add,commit之后,切换到master)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值