关于studio中Git的初步使用

来源:互联网 发布:中国历年人口数据 编辑:程序博客网 时间:2024/06/06 07:16

本片博客适用于初学git,或者初次使用studio,自己在这里贴出自己的娃一些使用经验,高手如果看到,不吝赐教。

第一次使用git,一直听说git是版本管理神器,自己也没在这方面使用过,初次使用感觉git的分支拉取分时方便,自己在自己的分支上做开发。

git中目前也没有什么简介,只是简单地创建分支,拉取分支,commit合并代码,今天听到了一个fetch,上网简单地查了一下作用,是从远程仓库拉取代码到本地,不通过merge,需要自己手动去合并代码解决冲突。
头告诉我的是让我合并代码的时候,先fetch,在自己合并代码,再去push,我并不理解这样做的好处是什么,和直接的push比较起来有什么好处,只能暂且做一个记录,等后续自己慢慢做研究以后,在补充。

git中还有一个作用,就是Stash Change,由于我用的是studio,不用通过命令行去控制git,这个Stash的作用就是做本地修改的储存,并回溯到,远程仓库库最近的push版本,是我个人的理解,一般都是说在开发代码到一般的时候,有紧急的bug需要修复,可是代码已经开发一半,可以通过Stash来储存开发的代码,在修复bug后再进行UnStash来返回到开发的代码,从而解决问题,暂且记录,以后在做后续的补充。

这一段时间回来看看,在写一点吧:
这里写图片描述

studio提供了很强大的代码管理系统,我们可以在这里直接进行代码拉取,公司项目或者个人项目,远程仓库可以提供clone地址,在这里可以进行代码的拉取,渠道有很多,这里只说git。
点击git后:
这里写图片描述
第一个为clone的url,远程仓库段都会有提供,常见的git管理有github,bitbucket;个人的话使用github足够,至于这两个管理有什么区别,可以自己在网上进行查询,在这里不进行详细的介绍。其中test应该是测试url可否使,用不作详解。
第二个为本地的代码仓库,第三个为clone的项目的名字

clone以后首先右键属性会发生变化
这里写图片描述
其中主要功能都在git这里:

一、commit File:

把改动提交到本地仓库,只是提交到本地
这里写图片描述

① 左上方区域为展示改动的文件,改动的java文件颜色为蓝色,双击可以查看修改内容,这里不进行截图,可以自己进行尝试
②commit message 这个地方为本次修改的备注信息,基本都是本次提交进行了哪些修改,这个在多个人同事开发时候,更容易去查询过去的代码,与同事之间可以进行更好的沟通交流
③下面的commit的右边有个倒三角可以点击,点击以后出现菜单,第一次commit和commitFIle一样的功能,把改动提交到本地,第二个commit and push 这个是在提交到本地后,直接提交到远程仓库,

(commit和push区别为:commit只是提交在本地,有利于自己代码回溯查询的时候有效果,其他人查看远程仓库的时候并不能查到你的修改,也就是远程仓库里面的代码并没有发生改变,所以,在多人开发时候一定要记得进行push,push指的在远程仓库最新的版本与自己本地仓库最新版本之间所有的commit全部进行提交,本地commit可以进行多次,一次push完成
这里写图片描述

左边为commit列表,可以查看这次push都上传了几个版本,右边为这次commit的改动文件列表,点击push进行上传)
在这里会弹出一个窗口这里写图片描述
这个是studio的master password,通俗翻译就是管理者密码,关于这个密码可以百度进行详细了解。
在输入密码后就会看到studio左下角有个提示
这里写图片描述
恭喜你,你的第一次提交成功了!

当然,如果你和同事同事对同一个文件进行了修改,产生冲突了,这个时候就要进行merge,
这里写图片描述

左边的是产生冲突的文件,右边三个选项:
1、accept yours 接受你本地的修改,完全无视远程仓库的修改
2、accept theirs 接受远程仓库的修改,你本地的修改会全部消失
3、merge这个就是我们所说的合并代码了吗,点击merge会弹出窗口,查看冲突的代码,这里不再进行截图,记住几种颜色代表的含义
蓝色:进行了修改
红色:两边都进行了修改,这时候尽量和同事商量进行修改
灰色:代码被删除
分三个窗口,左边的窗口为本地的代码,右边窗口为远程仓库的代码,中间为修改后的代码,可以再中间窗口直接进行修改,所以,和同事商量着一起进行修改吧,程序猿一定不要害怕merge,这个是必须经历的过程,所以骚年,勇敢去merge吧!

二、Add:

add是指当我们添加新的资源文件或者写一个新的java文件时,commit和push并不能把心添加的提交到远程仓库,因为远程仓库并没有对应的文件,所以我们要对文件先进行add,把文件添加到远程仓库,再进行commit和push,这样我们心添加的内容才会提交到远程仓库。第一次Add时我记得有一个提示,意识就是是否设置为每次创建新文件都自动Add到远程仓库,点yes以后就不用每次都Add了。

三、Repository:

这里写图片描述
1、Branches 分支
git好用就好用在这个分支系统,你可以理解为树状管理系统,git一般有个主分支,这个相当于主干道,最后发布的代码发布的就是这个分支上的代码,所以这上面的代码没有特殊情况是不能进行代码修改的,这时候分支就起作用了,我们可以在主分支上拉取develop分支和debug分支,develop分支,顾名思义就是开发分支,我们程序猿就是在这个分支上进行开发,自己拉取自己的分支,在自己分支上进程代码的编写,最后都提交到develop分支上。debug分支可以理解为修改bug分支,当我们代码部分完成时候,交由测试进行测试,而又有新的进度要进行时候,可以把代码拉到debug分支上面,当测试人员提出bug时候,再转到debug分支进行bug修改,也不影响当前项目的进度,要灵活运用分支。
点击branches这里写图片描述

这里可以详细看到每一个分支,包括创建新分支,这个地方自己进行尝试就可以,不再进行详细介绍了。

2、tag:
这个我没有使用过,后续使用到了再进行补充。

3、merge:
这个就是merge,作用和效果上面已经进行了讲解,不再叙述。

4、stash changes与unstash changes
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。其中message就是相当于tag,自己做的标记,方便unstash。
这里写图片描述

git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

关于Git Stash的详细解释,适用场合,这里做一个说明:

使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用’git stash’就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用’git stash apply’将以前一半的工作应用回来。也许有的人会说,那我可不可以多次将未提交的代码压入到栈中?答案是可以的。当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,’git stash list’命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空。

看过上面的信息,就可以知道使用场合了:当前工作区内容已被修改,但是并未完成。这时Boss来了,说前面的分支上面有一个Bug,需要立即修复。可是我又不想提交目前的修改,因为修改没有完成。但是,不提交的话,又没有办法checkout到前面的分支。此时用Git Stash就相当于备份工作区了。然后在Checkout过去修改,就能够达到保存当前工作区,并及时恢复的作用。

上面是在网上找的关于stash介绍,我在其中又添加了一些自己理解,先搞清楚逻辑,再进行使用
unstash:
这里写图片描述
点击unstash就会出现这个列表,上文中提到的clear和stash列表这里展现的很清楚,选择自己所需要unstash的分支进行操作或者清理,这里自己在查看详细的讲解多试一下就行。

5、reset head
这个给个博客地址吧,讲解的很详细,我这就不在赘述了
git reset简介

6、pull与fetch
这些都是精华,我就不写了,给个地址,自己跳吧
pull与fetch

暂时就先写这么多吧,这是和初学者使用git,高手如果有所指教敬请指出,看到后会进行修改。

16/4/11
今天有个小伙伴告诉我,说git提交遇见了一个新问题这里写图片描述

翻译过来就是理解为git没有设置名字和邮箱,因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
so,打开git文件夹,找到git-bash,运行
这里写图片描述
输入这两行代码
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

自己替换name和邮箱,然后再次提交,你会发现,提交成功了!!

1 0