Git使用杂谈——安装和上传代码到码云
文章目录
前言
早就听说了Git的大名,它是使用在多人协作的版本控制上,优点啥的我只听说过,没有切身感受到,百度一搜一大堆,我就不赘述了。反正知道这个软件在企业级开发必备就完事,优点后面自然就能感受到了。在学习《第一行代码 Android》的过程中,偶然接触到了Git,之前在和同学一起做项目开发时就有学长推荐我们使用了Gi然后将代码上传到码云,但当时不太熟练,完全零基础,实在弄不好,也算是小小的遗憾吧。这次我就要下决心学好Git了。
Git安装
Git的安装确实没啥好说的,百度Git去官网下载相对应的操作系统的即可,然后无脑下一步即可。这里提一下,由于Git的服务器在国外,国内下载的速度实在太慢了,但好在Git不大,只有44MB左右,可以使用国内的下载源,这里推荐腾讯软件中心,第一速度快,第二无需下载软件管家(在此鄙视某数字安全软件管家)。
Git初始化
Git安装完成之后,在任何地方鼠标右键单击,都可见,Git GUI Here和Git Bash Here。解释一下这两个名词,第一个是使用图形用户界面(Graphical User Interface)来操作Git,这个操作的难度比较低,所见即所得。第二个是使用命令行语句操作Git,作为一个优秀的程序员,怎么可能使用GUI呢,当然是黑乎乎的命令行适合我们了。使用第二种的主要原因还是为了以后在多场景下使用Git,特别是新手入门的情况下。试想大家学HTML的时候,是不是也都是从代码做起的,很少上来就使用Dreamweaver的吧?
在桌面上点击Git Bash Here可看到如下的界面,Administrator是你的电脑的用户名,简单理解就是你开机的时候显示的名字,@WIN-xxxx是你的计算机名字,这两个名字区分很简单。一个计算机只有一个计算机名,但可以有很多的用户,如果你想你还可以新建一个用户。/Desktop 表示的是当前操作的地址为Desktop——桌面。
如果想要到别的操作地址上去,可以输入以下命令,cd d:
这个表示的是跳转到D盘下,需要注意的是全部小写,另外冒号用英文的,cd和d中间要有空格。如下即可表示成功跳转到D盘(/d)
接着cd 需要操作的对象的剩余地址。直接找到需要操作的对象,复制蓝色的地址。删除前面的D:\。
然后复制到Git Bash中。你以为这样就完成了吗?仔细看/和\两个标识符有没有区别。一个左下划线,一个右下划线,在Git中地址分割使用的是/,二Windows中使用的是\,所以还需要把分隔符改成/。 cd AndroidStudioProjects/BroadcatBestPractice
这样就跳转到了需要的操作地址了,当然这样的话太麻烦了,以后再需要是可以手动找到项目根目录,鼠标右键Git Bash Here 即可直接到达所需操作目录。
如果想操作下一步需要自定义用户名和邮箱(这两个必须要有且只在第一次使用的时候设置即可,之后可以不用设置了),命令如下:
git config --global user.name "你自定义的名字"`
回车执行之后
git config --gloal user.email "你自己的邮箱"
回车执行
接着可以使用
git config --global user.name
查询你定义的名字
git config --global user.email
查询你定义的邮箱
这样你就有了一个用户名可以对其真正操作了。
确定页面上的地址是你需要操作的地址之后,需要先对项目初始化。命令为
git init
执行完毕之后,在项目的根目录下,会议就一个隐藏的.git文件夹,win10如何查看隐藏文件夹这一点我就不说了,想必用到Git的人应该之前都知道,不知道的可以百度。
这个文件夹李存放的是本地所有的Git操作,可以通过ls -al
来查询。当然如果你想删除这个仓库,直接把.git文件夹删除即可。
至此Git的初始化已经完成,下面就可以提交本地代码了
Git提交本地代码
还是在之前的项目根目录下操作,通过
git add 文件名/文件夹名,如 git add build.gradle 或者 git add app`
但如果想要add所有的文件可以通过
git add .
这个.就代表add所有文件。
至此文件已经添加好了,如果真正想把代码提交的本地仓库,还需要提交(commit)操作。
git commit -m "First commit."
其中
git commit -m
为提交操作, “First commit.”,这个表示的是描述信息,提交的时候必须要加上描述信息,不然是提交不上的,回车之后就可以成功提交了。
本地仓库关联到远端仓库
代码光在本地端,在协同开发的时候用处不大,只有到了云端,所有人都可以看到,可以对其操作才可以实现协同开发。选择本地仓库的时候,我选择了国内的码云(gitee)。选择它的原因很简单,我使用这个远端仓库,只是为了,让我的代码在不同设备上共享。程序员们常用的GitHub经常登录不进去,而且把代码下载到本地还很慢,使用一款简单易用的,对于我这个新手来说就够了。
注册码云
百度码云官网,直接按照要求创建即可,全中文操作,没啥难的。之后到个人空间首页,点击+号,选择新建仓库。
仓库名:建议使用和项目名一致的仓库名(我使用一条斜杠是因为我之前有这个仓库了,用斜杠区分一下,不会真正创建的)
仓库描述:看心情,非必填
是否开源:看心情,正常先弄成私有的即可
选择语言:根据自己的实际情况选择,我是用的Android
添加 .gitignore:这个我没搞懂是具体干嘛的,据说是选择文件上传时候忽略文件的模板,大多数人的建议是先别管它。
最后那几个选择框,看自己心情,建议还是不勾选。
至此一个新建的码云仓库就完成了。
本地端操作
方法一,先下载,再上传
方法一的原理就是把远端的仓库先下载到本地,然后再用远端的文件替换本地的文件,然后再上传到远端。看到这你可能有些疑惑,为啥要替换一下呢?后文会解释,先这样做着。
找到你在码云上建立的仓库,点击克隆/下载,复制HTTPS的地址
然后在Git Bash中输入
git clone 地址,如git clone https://gitee.com/xxxxx/BroadcatBestPractice.git
执行之后,会在目录中生成一个以远端仓库名为名字的文件夹,把这个文件夹中的文件复制到此目录中,冲突的全部替换。然后再把这个空白的文件夹删除即可。
接着执行
git add .
git commit -m “First”
接着就是把本地仓库上传到(push)码云上,命令为
git push origin master
此时如果等待一会,如果让你输入账号和密码直接输入码云的账号和密码即可(这里建议使用手机号)而且不要输入错误,如果真的输入错误 ,见文末的解决方案。如果正常的话,现在你去码云就可以看到你的提交信息了。现在再说一下为啥要先克隆下载。因为码云上初始化的仓库的文件,有时候你的项目里并没有,比如readme,这时如果用
git push origin master
提交会显示有冲突,提交不上去。如果此时强行提交,虽然据说可以用
git push origin master -f
强行舍弃readme提交,但大多数人都不建议。
有的说不加-f的命令可以保存readme,但我的总是不行,我也不知道为啥,所以还是推荐大家使用第一种方式。
方法二,先创建,再上传。
这种方式适用于,码云文件和本地文件没有冲突时候(一般来说就是readme文件)使用。
初始化:
git init
建立远端联系:
git remote add origin 远端仓库地址
如git remote add origin https://gitee.com/xxxxx/BroadcatBestPractice.git
这一步我不知道干嘛,但确实需要
git pull origin master
接下来就是套路模板了
git add .
git commit -m "first"
git push origin master
接着在码云中就可以看到自己的提交信息了。
Git SSH公钥与码云关联
用处
目前我不太清楚,只记得是作为上传者的一个认证。听说蛮有用的,就试了一下。
获取SSH公钥
输入命令
ssh-keygen -t rsa -C "email@example.com"
**“email@example.com”**输入你之前注册Git使用的邮箱(忘了的自己用git config --global user.email查询)别的直接和模板一样就行。
接着敲三次回车,三次回车的内容如下
第一次是 .ssh 文件保存的位置,一般默认为 C:\Users\Administrator.ssh\id_rsa
第二次让你输入密码,一般不需要输入
第三次让你输入确认密码的,也不用输入
接着会出现一堆英文,大概意思都比较简单,分别说了公钥地址,私钥地址和随机字符画,不需要管它。
到C:\Users\Administrator.ssh\id_rsa目录下,可以看到这俩两个文件。
id.rsa为私钥,id.rsa.pub为公钥。至此公钥生成完毕。
关联到码云
打开码云的设置-安全设置-SSH公钥。
接着用记事本打开id.rsa.pub,复制其中的内容至码云的公钥输入框,标题可以自取。点击确定即可。
Q&A
Q:输入码云的账号密码输入错了?
A:首先我们要知道,输入错了之后win10不会自动帮你校正或者让你改的机会,所以只能从系统里去改,这点也是包括我在内的很多新手都会栽的地方,想着输入错了怎么还不让我重新输入。
找到控制面板,按照控制面板\用户帐户\凭据管理器的目录找到如下界面,单击Windows凭据,可以看到一个以你的码云仓库地址为名第网站,点击它右边的下拉箭头,点击编辑即可重新设置账号密码(这里建议使用注册的手机号或者邮箱号是因为比较好记,而且好找,真找账户名,反正我是没找到)。
Q:我想在IDE中使用Git并且想把它上传到码云怎么办?
基础配置
A:以jetbrain的IDE为例(毕竟我只会它这一家的)。首先先去插件库安装gitee(码云)插件,File | Settings | Plugins,然后搜索gitee,这里特别说明一下,如果有人用的是Android Studio可能需要用国内镜像来安装各种插件。File | Settings | Plugins点击右上角的齿轮
从下拉列表中选择HTTP Proxy,按照如图的样式进行设置(使用的是东软的镜像,各方面都可以)。
言归正传,安装完gittee插件后,到File | Settings | Version Control界面
可以看到一个Git,一个Gitee,点击Git,按照如图要求。
再点击Gitee,点击右边的+
输入自己码云的用户名/邮箱,建议使用邮箱,手机号不支持,再输入密码,接着login in。
初始化
接着点击VCS(版本控制系统(version control system))/enable Version Control Intergration
从下拉列表中选择Git,然后点击OK
之所以这样做是因为先需要为这个项目创建一个.git文件(类似于git init命令,给这个项目初始化)
接着点击VCS,Git,下面就是GUI界面了,需要add,commit之类的操作都可以简单实现,我就不赘述了。重点说说和码云关联的问题。分三种情况其一是在码云上新建一个和本地项目一样的仓库,其二是本地更新之后,码云也要更新,其三是码云上更新了,本地也要更新。
与码云关联
在码云上新建仓库
还是如图的路径和选择
和在码云上设置的基本上差不多,主要就是仓库名和是否私有需要看情况,别的用默认就行。点击share即可成功创建。进入自己的码云可以看到一个和本地一样的项目。
本地更新之后,码云更新
在bash中,我们使用的是push命令,这里也一样。按照如图的操作即可,可以根据实际情况,选择之前commit的不同版本(根据commit时自定义的描述信息)。
如果想选择特定的文件上传,可在文件单击鼠标右键,按照如图的示范上传。
码云更新之后,本地更新
在bash中,我们使用的是pull/命令,这里也一样。clone也能做到,但clone和pull的区别在于,pull是把两者合并,而clone是完全新建一个文件,把clone出的界面放在里面。所以使用的是pull。按照如图的方式pull即可。
总结
这是我花费时间最长写的一篇博客,不管是排版还是搜集资料都花了我很长时间。总的来说,基本上算是入Git的门了,会一些基本的操作。以后我就可以把代码上传到码云,这样我在实验室的电脑和我自己的笔记本的代码就比较方便的共享了。Git是企业级开发必备的,而且他都是命令行,学好它对于我将来用Linux的命令也有帮助。
有时候在学校与同学合作整理各种文档次数多了,越发感觉效率很低,很容易出错,但在Git中可以明确的看到,谁对哪做了什么操作,之前的版本是啥,感觉很方便,也越发佩服发明Git的人。慢慢学吧。