一、注册一个GitHub账号,创建一个仓库
访问www.github.com去注册一个账号(提示:sign up是注册,sign in 是登录),使用邮箱完成验证后,点击右上角的加号,选择New repository:
填写仓库基本信息后点击create repository创建一个仓库
到这个页面了暂时放着不用管,继续进行客户端的配置
二、配置Git客户端
1、先下载Git
下载地址:https://git-scm.com/
下载好了运行安装包,安装Git,安装过程一直下一步下一步,很简单。
然后安装完成之后,在桌面或者某个新建的文件夹下面右键,会多出两个Git选项:
2、配置ssh免密连接
这么做的好处是,你访问Git的远程仓库的时候不用每次都输入密码。
(1)先随便找个文件夹,在空白处右键,然后选择Git Bash Here这一项,启动一个Git命令行。在命令行中输入以下内容:
ssh-keygen -t rsa -C “邮箱号”
输入后效果如下图,然后一路回车,会在系统用户的.ssh文件下生成私钥和公钥。
(2)然后到.ssh目录,将id_ras.pub下的公钥内容全部复制一下。
(3)然后返回到github的网页上,点击右上角的头像,选择下拉框中的setting
然后在点击SSH and GPG keys,点new SSH key
将刚刚复制的公钥填到Key里面,再自己填个标题,点击Add SSH key就完事
到这里,基本配置就完成了,回到本地,然后找个文件夹,在下面启动一个Git Bash,就可以继续输入命令体验git了。
3、多个github网站账号的配置
这里再补充一点,如果想配置多个github用户也是可以的,这里举例说明:比如说一个是你自己的github账号,一个是你公司的gitHub账号。每个账号都要有不同的公钥和私钥文件,可以重新去产生一个,记得把其他账号的公钥和私钥文件重命名,防止覆盖。
然后在~/.ssh目录下添加一个config文件
然后内容如下,以后每新增一个账号,只需要将几行配置属性复制出来一份改改就完事了。
三、Git常用命令
1、将某个仓库的代码克隆到本地,将仓库的地址复制一下
git clone git@github.com:TangGuoNiuBi/AutoTest.git
2、将文件保存到远程仓库的过程
例1:将文件名为hello.txt的文件保存到远程仓库
步骤1)git add hello.txt
步骤2)git commit -m “注释内容”
步骤3)git push
例2:一次提交一个名字为abc的文件夹和它下面的内容
步骤1)git add abc/
步骤2)和步骤3)同例1
例3:一次性提交所有修改
步骤1)git add .
步骤2)和步骤3)同例1
3、拉取远程仓库的内容,更新到本地仓库(仅更新当前分支的内容)
git pull
4、分支操作
(1)查看当前操作的分支:只需要看最后的括号里面包裹的内容
(2)查看本地仓库包含的分支:
git branch
(3)查看远程仓库包含的分支:
git branch -r
(4)查看本地仓库和远程仓库的所有分支:
git branch -a
(5)在本地建立一个名字为branch1的仓库
git checkout -b branch1
(6)在新建的branch1下面push一个文件到远程仓库会报错,然后会提示远程还没有这个分支,需要使用如下命令:
git push --set-upstream origin branch1
(7)从master分支切换到branch1分支
git checkout branch1
(8)删除本地仓库的branch1分支(如果你目前还处在branch1分支上,那么执行删除命令会失败,必须先切换到其他分支)
git branch -d branch1
-D:强制删除
-d:普通删除
(9)删除远程仓库的branch1分支,只有执行了下面两个步骤才能真正删除
步骤1)git branch -r -d origin/branch1
步骤2)git push origin :branch1
注:步骤2)的orgin后面有个空格,注意不要忘了
(10)分支合并
例1:现在主分支上创建一个hello.txt文件,然后把文件提交到远程仓库中。如下图所示:
在master分支的基础上再创建一个分支mergeDemo,然后在mergeDemo分支下修改hello.txt文件中的内容,修改完之后,再把文件提交到远程仓库中。如下图所示:
要求将mergeDemo分支合并到master分支上。
步骤1)先切换到master分支
git checkout master
步骤2)执行合并分支代码
git merge mergeDemo
我这里的修改比较特殊,由于master分支下的hello.txt和mergeDemo分支下的hello.txt的第一行内容不同,就发生了冲突,如下图所示。所以操作到这里并不能将合并后的内容立即提交到远程仓库,必须先解决冲突,解决完冲突就可以提交了。
5、版本之间的切换
例1:将当前版本回退两个版本(需要回退几个版本,HEAD后面就打几个^)
git reset --hard HEAD^^
例2:假设一种极端的情况,你想把代码回退到前100个版本,根据例1那得在HEAD后面加100个^,这样显然太麻烦了,可以用下面的指令简写
git reset --hard HEAD~100
例3:查看所有的版本信息,效果图如下:
git reflog
例4:可以输入 git reflog后将版本前面的版本编号复制下来,可以回到指定版本编号的版本。
git reset --hard 9b1b7a5