git操作整理

最近在用git做项目的代码管理,在此对git的使用做一个简单的总结。

1、git学习资料

网上git的学习教程很多,本人看的是如下两个网址的教程:
www.runoob.com/git/git-basic-operations.html
https://learngitbranching.js.org/

2、git个人使用汇总

1)git常用操作

下载远程库 git clone https://github.com/Evolveum/midpoint.git

a)分支常用命令组

创建并切换到分支 git checkout -b clib-testing
切换分支 git checkout master

查看本地分支 git branch
查看远程分支 git branch -r
删除本地分支 git branch -d clib-testing
删除本地的远程分支 git branch -r -D origin/clib-testing
远程删除git服务器上的分支git push origin -d clib-testing

b)提交常用命令组

将文件添加到缓存区 git add .
将缓存区内容保存到本地仓库中 git commit -m "提交注释信息" (若新的修改想提交到上次提交的commit中 git commit --amend
将修改更新到服务器中 git push (若是分支未提交到过服务器,可根据输出提示,输入如下命令 git push --set-upstream origin clib-testing )

c)更新本地库常用命令

更新本地库 git pull (第一次更新本地库 git pull origin master)

d)其他

显示工作目录和暂存区的状态 git status
查看提交日志 git log

2) 高频操作

a)撤销操作

没有git add,撤销修改 git clean -f
撤销git add git reset --mixed(文件退出暂存区,但是修改保留)
撤销git commit git reset id(完成Commit命令的撤销,但是不对代码修改进行撤销,可以直接通过git commit 重新提交对本地代码的修改)
撤销git push git reset –hard id(完成撤销,同时将代码恢复到前一commit_id 对应的版本,id通过git log查询)git revert id

[git revert与reset的区别是git revert会生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留,也就是说对于项目的版本历史来说是往前走的。而git reset 则是回到某次提交,类似于穿越时空。]

b) 合并

A、将clib-testing分支的代码合并过来,并按照提交的顺序排序

  • 切换到master分支 git checkout master
  • 在master分支合并clib-testing分支 git rebase clib-testinggit merge clib-testing

rebase和merge区别请参看:https://www.jianshu.com/p/c17472d704a0

B、把分支中的一个commit合并到master中

  • 查询分支commit id git log
  • 切换到master分支 git checkout master
  • 合并分支中commit id前6位数为6b7a80到master中 git cherry-pick 6b7a80

C、合并commit
合并最后2此提交 git rebase -i HEAD~2
合并上次提交到commit id为65tb80开头的commit git rebase -i 65tb80

c)日志查询

查看远程分支日志 git log remotes/origin/cli-testing
查看各个branch之间关系图 git log --graph --decorate --oneline --simplify-by-decoration --allgitk --simplify-by-decoration --all

–decorate 标记会让git log显示每个commit的引用(如:分支、tag等)
–oneline 一行显示
–simplify-by-decoration 只显示被branch或tag引用的commit
–all表示显示所有的branch,这里也可以选择,比如我指向显示分支ABC的关系,则将–all替换为branchA branchB branchC

猜你喜欢

转载自blog.csdn.net/fengshuiyue/article/details/80337892