Git是目前世界上最先进的分布式版本控制系统,也是当下最流行的版本控制,不管是IT行业,还是小说家等等,使用了Git都会给我们带来许多便利。
官网:https://git-scm.com
首先到官网下载最新git版本:
windows下安装git:
笔者没钱买苹果电脑,在此就给大家演示windows下安装git的步骤吧。
1、点击刚下载好的最新git安装文件,然后点击“Next”;
2、选择安装目录,我习惯把软件安装到D盘,这个你们随意就好;
3、
配置安装组件
默认即可,点击“Next”;
默认已经都帮我们否选上了。包括创建桌面快捷方式、Git Bash、Git GUi、已经目录和后缀关联等。
4、在“Adjusting your PATH environment”选项中,默认即可。点击“Next”。
这个步骤最好选择第二项“Use Git from the Windows Command Prompt”, 这样在Windows的命令行cmd中也可以运行git命令了。这样会对以后的一些操作带来方便;
5、使用默认配置Use the OpenSLL library
6、配置行结束标记,保持默认“Checkout Windows-style, commit Unix-style line endings”.
7、在终端模拟器选择页面,默认即可,配置后Git Gash的终端比较易用。
8、最后配置Git额外选择默认即可。然后点击“Install”开始安装。如果之前安装过旧版本,会先卸载然后再安装新版本。
最后成功完成了安装。
那么有人会问,怎样判断git安装是否成功呢,很简单,打开git在命令行输入:git,按回车结果如下:
如果您看到有这些提示,就证明git安装成功了,这些都是git常见的命令,接下来我们就开始一起从零学习git命令吧!
如果看不懂上面的英文,连大概意思都不知道,那就要多多请教Google翻译了,哈哈,我也是这样过来的。
git的基本使用方法:
-
git status: Show the workingtree status
输入git status命令查看当前状态:
提示意思就是当前目录还不是一个git目录,所以要先切换到git仓库目录下再进行git操作;在进行任何git操作之前,先要切换到git仓库目录,也就是要切换到项目的文件目录下,切记、切记、切记!
-
git init:Create anempty Git repository or reinitialize an existing one
初始化仓库的命令,切换到仓库目录,输入git init,接着我们再次执行第1步操作git status查看当前状态,这里我的仓库是test项目里面有个a.md文件,这时你可以看到test仓库已经被初始化了,默认就直接在master主分支上,a.md文件Untrackedfiles,意思就是a.md文件还没有被跟踪,还没有提交在git仓库里,并且提示我们可以使用“git add”来提交你想要提交的文件。
3.git add:Add filecontents to the index
接着上一步,我们就随便更新下a.md文件然后使用git add a.md将a.md添加到git仓库上,并git status查看下当前状态:
这里可以看到文件a.md的提示:Changes to be committed;意思就是a.md文件等待被提交,当然你可以使用“git rm --cached”命令去移除当前的缓存;相信你对git add已经了解了吧;
-
git commit: Record changes tothe repository
接着我们就开始第一次提交了,git commit –m ‘提交的内容说明’;到这一步应该都知道是什么意思了,commit是提交的意思,-m代表要提交的信息; 正常来说是要提交成功了,但是由于初次使用,git用户信息还没配置好:
git config --globaluser.email "you@example.com"
git config --globaluser.name "Your Name"
按照此格式分别对应设置好用户邮箱和用户名就可以了;
到这里已经配置好用户信息,不过上面所执行的是全局设置,如果某个项目需要用特定的邮箱或用户名来提交的话,只要将git切换到某个项目,把—-global去掉,再重新配置一次就Ok了;
接着我们就来完成我们期待已久的“第一次提交吧”!
输入git commit –m ‘my first commit’
前面也说了,我们没事的时候就多用git status,哈哈! git log : Show commit logs
提交成功后,我们可以输入git log,这时就能看到我们提交的信息包括作者和内容;git branch :List, create, or delete branches
branch为分支的意思,在团队协作开发中发挥了很大作用,比如一个团队有甲乙两人,他们分别开发不同的功能模块,这时甲乙就可以分别创建自己的分支来提交代码,互不干扰,等功能写好了再统一合并代码。
在前面我们执行git init初始化仓库后都会默认生成一个默认主分支master,我们输入git branch可以查看当前分支情况:
带着*号的master就是我们当前的主分支,这时要团队开发了,我想在此基础上创建一个分支a提交我的代码,接着可以输入 git branch a 创建分支a;
这时我们输入git branch 查看当前分支情况:
- git checkout:Switch branches or restore working tree files
上面确实是创建了分支a,分支a的内容确实是和分支master一模一样的,但是分支a前面没有号,证明当前位置没有在a分支上,所以要切换到分支a上,使用git checkout a 执行这个命令后再次输入git branch,这时a分支前面已经有了号了,这时我就可以在a分支上随便改代码了。
这时如果觉得这样先创建再切换到分支a上,有点麻烦的话,当然你可以一步完成此操作:git –b a
就是这样就可以代替上面两步了。
8.git merge: Join two or more development historiestogether
意思就是合并分支的命令,就比如上面a分支的项目都完成了,这时就需要用到这个命令来合并;首先需要切换到主分支master,然后执行git merge a 正常情况下就合并分支成功了。
9 . git branch –d
删除分支的命令,有两种情况可以使用该命令;第一种情况:假如上面新建的a分支的命名错了,可以使用该命令删除;第二种情况:新建的a分支已经合并到主分支上了,那么a分支就不需要了,可以使用该命令删除;在执行该命令前要确保当前位置是在主分支上;
git branch –D
强制删除分支的命令,有时候使用git branch –d命令去删除分支可能会删除失败,比如a分支上已经提交代码了,这时如果你想执行git branch –d去删除这个分支,那肯定是不行了,系统会提示说,该分支还没有合并代码到主分支上,所以我们可以使用git branch –D去强制删除就可以了。-
git tag :
新建标签的意思,可以给当前状态下的代码添加一个标签,方便下次查看修改;现在我要在a分支上新建了一个标签为tag1,只需输入git tag tag1 就可以了,然后可以输入git tag来查看新建的标签记录。
至此,git的基本用法也差不多是这些了,很基础很基础的用法,必须要懂才能继续深入研究, 接下来就可以试着提交代码到远程服务器了 come on !
开始提交代码到远程仓库----GitHub:
1.SSH和HTTPS
如果要向GitHub上提交代码的话,主要会用到SSH或者HTTPS,说白了就是一种网络协议,最终目的都是向GitHub上提交自己的代码,不同的地方按我的理解就是:SSH是经过RSA公私钥加密处理的,相对于HTTPS更加安全点,在使用之前就要先配置好SSH key,之后提交代码就不在需要输入密码了,相反HTTPS每次提交代码到GitHub都要输入邮箱和密码来验证,所以HTTPS用起来简单,但麻烦一点,SSH就是刚开始要配置麻烦而已;接下来我们就开始配置SSH key吧!
2.配置SSH key
(1)打开Git Bash输入ssh即可查看电脑是否安装了SSH,没有的话就自行下载安装,一般情况下安装了Git都会带上SSH的:
(2)输入ssh-keygen –t rsa指定rsa算法生成秘钥,接着连续3个回车,然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公钥。这两文件默认在如下目录里生成:win系统在 C:\Users\Administrator.ssh下,都是隐藏文件,相信你们可以查看的。
这样我们就可以将id_rsa.pub配置到GitHub上了,然后在提交代码的时候就会和本地的id_rsa进行校验,校验成功才可以提交代码到GitHub仓库。
(3)GitHub上配置SSH key也就是id_rsa.pub,首先进入GitHub上的settings页面,点击左侧SSH and GPG keys ,如下图:
然后点击右上角New SSH key 按钮,接着粘贴刚才那个id_rsa.pub文件里面的内容:
然后Title 那栏不需要填写,点击 Add SSH key 按钮就可以了,最后就测试下SSH key配置成功没哈,
输入ssh -T git@github.com如果出现如下提示,则配置成功!
3.接下来终于可以提交代码到远程仓库了
(1)先再补充一下git命令,pull和push
Pull:
git pull origin master
将远程最新代码更新到本地。我们在push之前都会先pull,这样就不容易冲突。
push:
git push origin master
将本地代码推到远程master 分支
(2)好了,提交代码到GitHub有两种方法:第一种方法: Clone自己的项目,在自己GitHub上创建一个项目,然后在电脑本地(你喜欢的路径)执行如下git命令:git clone git@github.com:zsml2016/News.git 其中git@github.com:zsml2016/News.git是项目的地址,获取方法如下图:
执行命令行,结果如下:这样就顺利地把GitHub上的News项目克隆到电脑本地了,这时细心点可以发现该项目本身就是git仓库了,不需要再执行git init初始化了,而且已经关联了GitHub远程库了;
没错,到这里我们只需修改我们想修改的地方,然后git commit,最后就git push origin master
然后打开GitHub项目可以看到刚才修改的内容已经提交上来了
第二种方法:就是关联本地项目,就是GitHub没有此项目,我们只能关联本地的项目,然后再提交到GitHub远程仓库; 比如现在我们本地有个news2项目,现在需要在GitHub上创建一个news1(这里为了区别远程和本地项目名字,所以命名并没有限制,自己喜欢,哈哈),然后再把本地news2项目的所有内容提交到GitHub上的news1项目里;
第一步:在GitHub上创建news1项目;
第二步:切换到本地news2目录下,执行如下代码将本地news2项目和GitHub上的news1项目进行关联:
友情提示:由于news2还不是一个git仓库,所以在执行git操作都要先初始化。
先解释下上面操作什么意思吧,remote译为远程的意思,origin是给这个远程仓库起的名字,没错,名字可以随便起的,不过我们都习惯如果只有一个远程仓库时名字就是origin,所以git remote add origin就是添加一个远程仓库,git@github.com:zsml2016/News1.git是远程仓库的地址;
那为什么要给远程库起名呢?因为我们可能会友多个远程仓库,这样就要起不同的名字;
我们可以使用git remote –v 来查看当前项目有哪些远程库:
接下来我们本地的news2项目就可以提交到远程仓库news1了:
这时我们进入GitHub上的new1项目,可以发现news2项目已经提交上来了:
git提交项目到GitHub的学习也差不多了,接下来可以再进阶地去学习,正所谓学无止境,come on !
支持我的话可以关注下我的公众号,也欢迎大家投稿~
扫一扫关注我的微信公众号:程序猿在广东