一、安装本地git服务
git不同于svn,使用git需要先在本地按照git服务。
1、安装git环境,自带shell命令操作
安装后鼠标右键会出现
表示安装成功 。右键选择Git Bash Here可以输入shell命令操作
2、shell命令使用方法,以github为例:
(1)在github上建立一个项目,比如我这里叫MyBlog
项目页面,点击右侧可以看到这个项目的url为https://github.com/wtyy/MyBlog.git
(2)克隆项目:本地新建一个目录,如我这里就叫Git,右键选择GitBash,输入
git clone 跟上刚才的url
(3)提交代码:如我本地新建一个txt文件,现在需要提交到github上。 先commit提交到本地缓存(类似于svn的add)
git commit -m "first"引号里面是对本次提交的说明信息。
再push:
git push -u origin master
接下来会自动提示输入用户名和密码。回车后等上传完,再看一下github多了一个文件
二、代码托管可视化工具
(不推荐使用,推荐开发工具中的git)
安装后鼠标右键会出现
tortoiseGit使用方法:
1、克隆代码:Git Clone
点击后弹框
URL为项目主干地址,如果需要下载分支,则勾选Branch,并在随后的输入框中输入分支名称即 可。点击OK,会弹框输入用户名密码,然后自动完成下载。
2、提交代码:git提交代码是首先提交(commit)到本地仓库(相当于svn的add),然后再推送(Push)到远程仓库。
先点commit提交到本地缓存:
确认已经提交到缓存的文件Sync:
最后点push提交:
如果想删除commit记录,TortoiseGit->Show log,选中日志右键Revert Change by this commit即可,
3、更新代码:pull
4、代码还原TortoiseGit -> Revert。不过有两种情况,如果该文件已经commit,会与上次commit的版本对比;如果该文件没有commit,会与远程仓库代码比对。
三、idea git:
dea自带git工具,不需要安装任何插件。
1、工程导入:
1.1、首次克隆:
选择File->New->Project from Version Controll
点击后在弹出框中选择Git,并输入信息
点击Clone按钮后,等待idea下载代码,即完成克隆。
1.2、导入idea之前克隆的代码
File-> New ->Project from Existing Sources
1.3、多工程管理
若是需要打开多个工程,先一个个克隆到本地,再选择
从这里面import
2、分支切换
2.1、分支切换方法
ieda git自带分支切换功能,支持一键切换版本。克隆完成后,右下角会出现git版本信息(默认出现的是master主干),点开选择相应分支,鼠标右键点击CheckOut即可切换分支。
如我选择的feature-2.55 。
多个工程方法一样
2.2、更新分支
如仓库变更(新增)了分支,现在想切换到新变更的分支上,
点击这个获取分支的箭头获取最新的分支信息,再CheckOut到新分支上即可。
3、按钮介绍
(1)commit
导入工程后右上角会出现git标志, 其中对钩表示commit。
也有的idea版本push按钮也在右上角
(2)其他按钮:
在项目(或者空白处)右击,选择Git,可以出来很多命令。
4、更新代码:
每次commit代码为防止冲突应该先更新代码。而更新代码为防止发生冲突、代码覆盖等问题,应按先隐藏本地变更-->更新代码-->释放本地变更-->解决冲突的顺序,详细更新代码步骤如下:
(1)更新前,先隐藏本地变更,git Stash Changes
点击后会弹框输入日志,随便写一个
(2)更新代码:
这时再去拉代码,选中某个项目(在项目上右键),再点击git->pull。
(3)更新代码后,释放本地隐藏的变更
点击后也会有个提示弹框
(4)释放变更冲突解决:
释放后如果代码有冲突,会给你几种选择,视情况选择merger(合并),merger their(用仓库的变更覆盖自己的)、merger your(用自己的覆盖仓库的)。按需解决好提交,即解决了冲突。
5、提交代码:
注意:每次提交代码前应该按照2的步骤先更新代码,更新后再进行下述提交操作:
5.1、commit:提交到本地缓存
点击右上角git 对钩,commit代码
在弹出框中勾选需要commit的代码,输入日志,确认后点击commit
5.2、push:缓存提交到仓库
在项目上右键,找到git -> push,确认信息后点击push即可。
commit、push可以多个项目同时提交,也可以单个提交。如我点击对钩后会把所有工程本地的变更显示出来,需要提交哪些,勾选复选框即可。
5.3、push代码冲突解决:
push时git会自动检查本地代码是不是最新的,不是会强制更新,先触发更新再触发提交,而commit不会有这个校验。所以如果commit之前没有更新代码,push代码时发现本地不是最新代码:
(1)只是没有更新代码,而更新后没有冲突:push时会提示你是否merger,点击确定后,git会自动fetch-->push你的变更-->merger你本地没有更新的别人的变更;
(2)没有更新代码且更新后发生了冲突:push时会给你多种选择,视情况选择merger(合并),merger their(用仓库的变更覆盖自己的)、merger your(用自己的覆盖仓库的)。解决方法同更新代码释放本地变更后的冲突。
6、查看提交日志:
在项目上右键,选择git ->show history
7、还原本地改动:
选中项目中需要还原的文件,右键git ->Rollback
或者点击commit查看本地变更时,也可以在需要还原的文件上右键选择Rollback
注意rollback是回滚本地的代码,不会回滚已经commit的。
8、cherry-pick
也是合并代码,但是可以针对commit维度来合并。cher-pick是本地操作。现在以master上cherry-pick部分代码到realse分支为例:先将本地chek out 到最新realse分支
8.1、获取最新master代码:
在master分支上右键选择update,获取最新的master代码
8.2、挑选目标commit
双击master,在弹出的页面中找到目标commit记录,支持按照提交人、日期搜索。如我搜索我提交的:
8.3、cherry-pick
一般按照时间顺序逐个cherry-pick。在最早的一个commit上右键,选择cherry-pick。
(1)如果没有冲突,会自动commit;
(2)如果有冲突,需要解决冲突并手动commit。
重复这样的步骤来cherry-pick其他commit,直到所有目标commit都cherry-pick了。
8.3、push
最后push到realse分支即可。
四、vscode git:
我是在当前项目下,打开新的命令窗口进行git操作的。
1、拉取新分支:git checkout 分支名称。注意执行这个命令需要本地代码是最新的且无变更;
2、更新代码:git pull;
五、git创建分支与合并代码:
开发工具也可以进行分支合并与创建,这里为了简洁直接从网页上操作。以码云为例:
1、创建分支:
进入分支目录,点击 新建分支 按钮,
在弹出框中输入新分支名称,点击确定即可一键创建分支:
2、合并分支到主干:
进入目标分支目录,点击Pull Request按钮:
跳转后的页面如下:这里在提交记录中还能检查变更
输入相关信息后点击确认提交。这里提交后没有真正被合并,只是提交了一个请求,提交后跳转到审核页面,点击接受请求
点击后在弹出的选项中选择第一个merge
这时弹出一个确认框,点确定即可。