手把手教你如何玩转“Git”这个神奇的工具

 情景引入:

小白:起床起床,怎么办怎么办?

我:小白,你又怎么了?一大早的。。。。什么事这么急~~~~~

小白:好悲伤,昨天我修改的代码,而另外一个小伙伴也在修改我和他都用到的代码块,导致我现在的代码出现了问题,好忧伤,,,而且,我和他目前进行开发整合代码,都是通过手动的拷贝代码来进行整合的,每天花费的时间都好多好多,快来棒棒我怎么解决这个问题呗~

我:那你们这管理模式确实要修改修改了,项目可不是一个人进行开发,可是一个团队共同的任务呢(虽然小白的团队就两个人)~~如果你想以后当上leader这个肯定要好好考虑呀,团队的效率可不能马虎。

小白:是的呢!但是,不知道有什么好方法,可以方便我们进行代码管理,能够帮助我解决这个问题吗?所以,我来找你啦。

我:这个挺好解决的,毕竟你现在还是学生,对于代码管理和开发,不是非常的规范,但是以后去公司了,肯定就不可以这样了,那我就给你讲讲一些基本和实用的方式好了。

小白:好的好的,正愁没人帮助我呢。。   

一个项目总是由着一个团队进行维护,那么对于代码的版本控制和团队之间的交流,就必不可少的需要一个工具来进行管理。这里的话,平常自己一般使用的都是Github(代码仓库),Git(代码管理工具)以及redmine(用于代码bug交流和进度控制)。另外的话,如果对于英文能力不是很好的话,大家可以试着用码云(也是一种代码仓库,中文版本),其次的话还可以使用SVN进行代码管理。这里的话,主要就是向大家介绍一下,关于Git的使用。

(一)Git工具的下载和使用

到我的百度云链接中下载即可(失效的话就留言联系):

链接:https://pan.baidu.com/s/1k5i3dVUJaLvwvp81ECJ9NA 密码:cyyy

安装步骤:然后按照正常安装软件步骤进行安装就可以了,然后按照完成之后右键鼠标出现如下的内容:

(二)Git 生成 ssh 秘钥

描述:因为,我们在项目开发的时候,针对不同的项目,小组成员是有不同的权限的,如果我们要进行修改里面的内容的话,那么对应的就有多种不同的权限,所以这里,就需要我们生成ssh秘钥,并且将我们的秘钥配置到Git的仓库中,这样才能够有更多的权限进行操作(比如:增删改查仓库代码)。

步骤:

(1)配置本机的账号和邮箱

账号:用于在git提交的时候,显示我们对应的名字

邮箱:用于注册秘钥和生成秘钥

如果之前没有配置过的话,那么就通过下面的方式:

右键鼠标---》git bash ----》输入:git config --global user.name "名字"----》输入: git config --global user.email "邮箱"

如果配置过的话,就不需要进行上面的命令操作了。

(2)判断是否我们已经有生成过SSH秘钥

右键鼠标---》git bash ---》输入:cd ~/..ssh

如果提示:

则表示没有生成过,那么就进行第三步即可。

如果是能够进入到对应的目录的话,那么就说明是已经生成过的,那么就不需要进行重复生成,可以直接去电脑下面的目录进行查看生成的ssh秘钥内容:

(3)在git bash下输入:ssh-keygen -t rsa -C '之前上面所输入的邮箱'---------》然后连续回车三次(功能:就是将ssh的目录文件生成到默认的路径下面)-----》完成之后就可以去下面的路径进行查看对应的ssh内容。

上面的步骤就是生成ssh秘钥的操作,下面贴一个完整的过程:

 

(三)关于Git的相关知识点

(一)下载Git项目和提交修改到Git仓库

 下面提一下怎么把本地的代码提交到Github仓库中,我想git很多人都用过,这个是开发中的代码管理工具,很实用,所以也是我们程序员必须要掌握的一个内容了。如何安装git我这就不多说了,可以百度直接有,很简单的。主要就是顺便提一下怎么提交本地代码。
步骤:

(1)安装完git后,右键鼠标就会发现多了两个东西,分别是Git bash Here 和Git GUI Here
(2)右键点击Git bash Here 然后会弹出类似cmd的一个界面,其实这就是git管理的界面(只是这不是友好界面而已),然后使用命令git clone (这里填写你github仓库中的项目的ssh,类似git@github.com:1234565789/text.git),这个在你github创建项目的时候就会自动生成一个,直接复制粘贴过来就可以了。
另外的话,还可能出现一个问题,就是github仓库中,我们命名的仓库的名字和我们项目的本身名字是不一致的,那这个问题怎么解决呢?因为如果这样的话,我们导入项目就会出现问题,因为项目的本身名字是不一致的,所以,这时候,其实只需要我们在执行git clone命令的时候,再命令最后面加上我们需要修改的名字即可。比如:git clone + ssh地址 + 我们需要修改的名字。样例:git clone ssh://git@12345689.git MyCustomer -------------------->这样,我们下载下来的项目的文件的名字就叫做MyCustomer了,而不是github仓库中的名字。
(3)接下来,可能会提示你没有权限进行clone这个代码,那么你只要在github中的用户中的setting功能中,选择SSH 和 GPG keys这个条目,然后加入你自己在安装git时候生成的一个ssh码就可以了,然后再重复上面的命令,然后你就会发现下载下来了你github中的项目。(如果有权限的话,可以跳过这一步)
(4)这时候,你就可以进行修改你的代码了。
(5)当修改完后,就需要进行提交代码
(6)首先,还是一样,找到对应的本地项目的那个文件,然后对其右键,同样是选择Git Bash Here这个条目,然后输入命令 git add . (注意,这后面是有一个点的。这条命令就是添加项目中的所有文件,如果你想只加如某一个文件,那么add后填写对应文件的名字即可)
(7)将add的文件commit到仓库。命令为: git commit -m "注释语句"
(8)pull推送本地文件。命令为:git pull origin master (最好pull一下,保持一致)
(9)上传代码到github远程仓库。命令:git push -u origin master
        好了,这就是所有的步骤啦,是不是很简单呢。赶快试试吧。。。其实有个更快的办法,就是在之前提到了右键出现两个东西,而我们上面都是只用了一个,那么另外一个到底是干什么的呢?其实它就是推送代码到仓库的一个可视化界面。步骤更简单,直接一步步点击里面的内容,就可以了,傻瓜式,而且提示内容更加友好。但是不管用哪种,git这个还是要会简单的命令。所以选择什么方式就看自己咯。。

(二)创建Git项目,并初始化Git仓库内容

上面说的是下载项目和上传项目到git,那么还有个问题,可能有小伙伴会问,就是如何第一次将本地的代码上传到github的仓库中呢?好的,其实这非常简单,下面就简单的来说一说这个问题。

步骤:

 因为GitHub是基于git实现的代码托管,所以git是少不了的。我们要确认电脑上安装了git,没有安装的,就去安装git。至于安装方法,就参考我的第一个知识点。
(1)新建Test文件夹,里面添加几个文件。右击Test文件夹根目录,点击“Git Bash Here”,打开git命令行。
(2)按照github新建仓库上的文档提示,提交项目刚刚创建的项目(关键就是下面的命令行步骤了):
(3).在命令行中,输入“git init”,使Test文件夹加入git管理;
(4).输入“git add .”(不要漏了“.”),将Test文件夹全部内容添加到git。
(如果是要添加文件夹以及文件夹下面的内容,就需要使用git add 文件名/ ------这样的方式,否则的话,就只会添加一个根文件夹,里面的子文件是不会添加的)

 

(5).输入“git commit -m "first commit"”(“git commit -m "提交信息"”)
(6)输入“git remote add origin https://github.com/shench5612390/Test.git”(git remote add origin 你自己的https地址或者ssh地址都可以),连接你的guthub仓库。
(7)输入“git push -u origin master”,上传项目到Github。这里会要求输入Github的账号密码,按要求输入就可以。

 

注意(容易出现的问题):

(1)问题:如果在第(6)步之后,进行第(7)步的时候,提示没有权限之类的,那就说明github没有给予你权限,所以,无法进行提交内容。

解决办法:

(2)问题:在第(6)步的时候,提示 fatal:remote orgin already exists错误
解决办法:
    1、先输入$ git remote rm origin
    2、再输入$ git remote add origin 仓库项目地址(ssh或者https地址都可以) ----------------- 就不会报错了!
    3、如果输入$ git remote rm origin 还是报错的话,error: Could not remove config section 'remote.origin'. 我们需要修改gitconfig文件的内容
4、找到你的github的安装路径,我的是
C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc
5、找到一个名为gitconfig的文件,打开它把里面的[remote "origin"]那一行删掉就好了!

(3)问题:在push的时候出现failed to push some refs to的问题。

问题图解

原因分析:是因为push到远程仓库的内容和本地仓库存在版本不一致。(简单点说:就是内容不一致)

解决办法:通过下面的命令即可。

git pull --rebase origin master

指令的含义:这条指令的意思是把远程库中的更新合并到本地库中,–rebase的作用是取消掉本地库中刚刚的commit,并把他们接到更新后的版本库之中。

(三)创建分支,并提交任务到分支

步骤:
(1)首先,我们需要进入到我们一个git仓库的master分支(一般,我们的项目就是放在主分支,所以,我们只需要右键git bash 进入git命令模式即可)
(2)然后,我们需要在主分支(master,也就是我们默认的第一个分支)创建一个新的分支:git branch +分支的名字,比如git branch mybranch20180602
(3)切换分支:git checkout 分支名,比如,git checkout mybranch20180602 
(4)后续的操作就和我们在master上面一样了,即git add 需要提交的文件
(5)当提交了文件之后,我们就需要:git commit -m "test branch"
(6)如果这时候我们已经切换在了分支下面,那么我们可以直接git push 就可以推到版本库中了,如果不是在分支下,那么就需要git push 需要提交到的分支名 ,比如git push mybranch20180602
(7)这时候,再去github上面的仓库切换到分支,就可以看到我们提交的内容啦。

(四)合并分支到主分支

步骤:
(1)切换到主分支:git checkout master
(2)通过合并命令:git merge 需要合并的分支名,比如git merge other20180602 (还可以通过命令:git rebase othser20180602,它们的功能是一样的,只是对于处理不一样)
(3)查看状态:git status   ---------这时候,就会提示你有多少会被进行合并的文件
(4)提交分支合并:git push origin master

(五)删除分支

步骤:
(1)查看仓库的分支条目:git branch -r
(2)切换到需要删除的分支上面:git checkout 需要删除的分支名,比如git checkout other20180602 。。。也可以不进行切换到具体的分支,直接执行下面的命令
(3)git branch -r -d 需要删除的分支名,比如git branch -r -d origin/other20180602(这个就是在第一步中可以看到的结果条目对应的某一个)
(4)git push 需要删除的分支,比如git push origin :other20180602 
(注意:origin后面有一个空格)

(六)回滚到某个版本

步骤:
(1)查看历史提交的版本:git log -数字,比如git log -3,这样就可以看到最近的3条提交的内容
(2)回滚到某个版本:git reset --hard 需要回滚到的版本,
比如回滚到上一个版本:git reset --hard head^        (注意:一个^就表示前一个版本)
比如回滚到某一个版本,我们就通过通过第一步中看到的commit的版本号来进行,比如:git reset --hard 2506204fe521fc  (这样就可以回滚到2506204fe521fc 对应的版本)
(3)提交回滚提交:git push -f origin master
通过上面的步骤,就可以回滚到相应的版本中去了。
如果这时候,我们又想回滚到最新的版本,那么就接下来这样操作:

(1)查看历史操作的id:git reflog

(2)回滚到某个版本:git reset --hard +我们需要回到的id号即可。比如,git reset --hard 5b0df13
(3)提交我们的命令到远程仓库:git push -f origin master,这样远程就变成我们需要的版本的内容了。

(四)Git相关的一些常用命令

对于Git操作中,我们要非常清楚每种命令对应操作的是什么仓库中的内容,比如本地仓库?远程仓库?还是等等,下面通过一个图进行分析:

顺便再提一下一些基本的Git命令:
git init(初始化仓库)
git add 文件名 或者 git add. 或者 git add -A (将文件添加到仓库)
git commit -m "注释" (将暂存文件提交到本地仓库)
git status (查看仓库当前状态)
git log (查看所有commit记录)
git reset HEAD^ (恢复成上次提交的版本) git reset HEAD^^(恢复上上次提交的版本)
git push -u origin master (同步远程仓库)
git rm 文件名 (删除版本库文件)
git clone ssh地址或者https地址 (从远程仓库克隆到本地)
git remote add origin ssh地址或者https地址 (本地仓库内容推送到远程仓库)
git checkout -b dev (创建dev分支并切换到分支dev)
git branch dev (创建分支)
git checkout dev (切换分支)
git branch (查看分支)
git merge dev (合并分支)
git branch -d dev (删除分支)
git remote (查看远程库信息)
git remote -v (查看远程库的版本信息)
git remote remove fileName(删除fileName对应的库内容,fileName是自己进行相应的填写)

git clone -b 分支名+ssh地址(下载分支仓库的代码)

好了,先介绍这么多,非常管用的,这个对于程序员还是要好好学习学习哦。。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值