博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git工具应用
阅读量:4137 次
发布时间:2019-05-25

本文共 2962 字,大约阅读时间需要 9 分钟。

Git 工具应用

1.git log

该命令用于查找git的提交记录,也可以添加参数p,查看详细的提交个更改记录

git log -p

查看某个文件的提交历史

git log -p filenname

2.git branch

可以查看当前是在哪一个branch上。

git branch -a // 显示所有的分支

3.git checkout branch

切换branch,我们如果需要切到一个远程的branch,同时新建一个本地的branch,可以用下面的命令

git checkout -b myBranch remotesBranch

4.git add XXX

向本地仓库添加修改文件

5.git commit

向本地仓库提交本次修改内容,如果需要添加自己的邮箱等信息,可以用一下命令:

git commit -s

6.git 产生patch

可以用一下命令:

git format-patch -n // 从当前提交点往下产生n个patch

对某个commit id 生成patch

git format-patch -1 commit_id

7.git tag

查看标签,也可以用一下命令:

git tag -l

添加标签:

git tag -a myTag -m "my note"

提交到远程仓库

git push origin -tags

删除标签:

git tag -d myTag

删除远程标签:

git push origin :refs/tags/myTag//注意冒号前为空

切换 tag

git checkout myTag如果要在 tag 代码的基础上做修改,并且建一个新的分支: git checkout -b branch_name tag_name

查看某个tag:

git show myTag

8.git push

将本地仓库代码上传到远程仓库。

如果提示push失败,没有远程仓库,需要重新设置对应关系:

git branch --set-upstream myBranch  remotes/origin/targetBranch

9.Git创建远程仓库并push 代码

如果你在本地有仓库,想将他push到远程的仓库,远程的也需要新建,可以用一下操作

首先新建一个git 仓库在本地

git init

然后添加自己的文件并且提交

git add XXXgit commit -s -m "******"

然后重点来了:

git remote add origin XXX@****要建立远程仓库的地址****PS:git remote add origin git@xx.xx.xx.xx:user/xx/xx/yourCodeDirgit push origin 本地分支:远程分支

10.git Cherry-pick

这个命令在我们的代码管理中非常实用。如果我们在版本1.0 的基础上开发了版本2.0,如果在版本2.0的上面发现了1.0的某些bug,进行了修复。如果在版本1.0的上面也需要这个patch,那么我们就可以直接用这个命令。

为了保险可以在1.0版本的基础上产生一个1.1版本。

git checkout -b version1.1 version 1.0

然后将 2.0上的patch 89d765sg 3567809g cherry-pick 到1.1上面

git cherry-pick 89d765sg 3567809g

然后就可以了,是不是很方便呢。

11.git merge

这个命令也是我们经常用到的

场景1.当我们的开发版本(myDev)要和master 分区合并的时候,可以如下操作:

git checkout myDevgit pullgit checkout mastergit merge myDevgit push -u origin master

场景2. Master 分区修复了一个bug,我们需要merge到,我们正在开发的版本上面:

git checkout master git pull git checkout myDevgit merge master git push -u origin myDev

在merge的过程中会出现一些confilct错误,这个时候需要找到相应的文件进行手动更改。

<<<<<<< HEAD要合并的代码=======本地代码>>>>>>> fg44s4h3af3dgh4as3fd

12.git reset

我们一般利用git reset 命令撤销commit 记录。下面就介绍下几个经常用的命令。

git reset 我们介绍三个命令,应该会有一款适合你。

reset --hard

这个命令用于重置stage区和工作目录,属于最狠的一个,在用他之前一定要考虑清楚

如果你想清除上次的提交记录,可以用如下命令:

git reset --hard HEAD^
reset --soft

这个命令可以保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区

命令如下

git reset --soft HEAD^
reset 不加参数(mixed)

保留工作目录,并清空暂存区

git reset  HEAD^orgit reset  --mixed HEAD^

13.git rebase 使用

有时候我们提交了好几次代码,但是我们想删掉中间的一次提交,这样我们就可以用到这个命令来操作。

比如有以下提交记录:

commit 3sd50a47eda59fff94df2e10052f4a96b1a5c4106Author: xxxxDate:   Thu Feb 7 21:44:41 2019 +0100     Third commitcommit asdfdsa8cf0ee61de108d6d58e0a62db583bAuthor: xxxDate:   Fri Jan 4 12:56:09 2019 -0800   second commitcommit asf91e626ddsadsa96a24995cff5597d36fAuthor: xxxxDate:   Thu Apr 11 10:14:59 2019 -0700   First commit

现在我们想删掉第二个commit,我们需要先rebase 到,第一次提交记录那边,命令如下:

//git rebase -i commit_id(第二次之前的id)git rebase -i asf91e626dd

然后再vim编辑器中将第二次提交记录前面的pick改为drop之后保存就可以了。

drop asdfdsa8cf second commit  //原来为pick, pick-> droppick 3sd50a47eda5 Third commit

如果有错误,欢迎大家回复指正啊!

使用过程出现ERROR

1.fatal: Unable to create 'XXXX/.git/index.lock': File exists.解决方案:找到.git/index.lock并删除它

转载地址:http://bgmvi.baihongyu.com/

你可能感兴趣的文章
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>
C 语言 学习---获取文本框内容及字符串拼接
查看>>
C 语言学习 --设置文本框内容及进制转换
查看>>
C 语言 学习---判断文本框取得的数是否是整数
查看>>
C 语言 学习---ComboBox相关、简单计算器
查看>>
C 语言 学习---ComboBox相关、简易“假”管理系统
查看>>
C 语言 学习---回调、时间定时更新程序
查看>>
C 语言 学习---复选框及列表框的使用
查看>>
第十一章 - 直接内存
查看>>
JDBC核心技术 - 上篇
查看>>
一篇搞懂Java反射机制
查看>>
Single Number II --出现一次的数(重)
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
idea的安装以及简单使用
查看>>