git的使用(win7 64位)

下载安装

1.官方下载网址:https://git-scm.com/downloads

2.安装十分简单,按照默认配置,一直点击next,最后点击install,即安装成功;

3.安装成功之后,则自动配置好系统路径,打开命令提示符,输入git,得到如下图所示的结果,则安装成功。

配置用户名和邮箱

1.如果装好了git,打开开始菜单,搜索git,即会出现git bsah,点击打开命令窗口;

2.给本机器的所有git仓库全局配置一个用户名和邮箱,--global即代表全局,当然也可以给某个git仓库单独指定特定的用户名和邮箱,若如下图所示则表示;

git config --global user.name "Your Name"                 --全局配置用户名
git config --global user.email "email@example.com"        --全局配置邮箱

3.通过如下命令,可以查看当前的用户名和邮箱,如果能查询到,即说明配置成功。

git config user.name           --查看当前用户名
git config user.email          --查看当前邮箱

正式开始使用git

初始化git仓库

1.首先我们创建一个文件夹作为试验品,在该目录下创建一个readme.md文件,文件内容如下所示

this is my first git Project

2.在该目录下,右键打开git bash命令窗口,使用pwd命令可以查看当前路径

pwd     --查看当前路径

3.使用如下命令,将该文件夹变为git可以管理的仓库

git init --初始化git仓库

4.此时查看该文件夹,在目录下发现多了一个.git文件夹,如果没有,可能是被隐藏起来了,这个文件夹即是Git来跟踪管理版本库的;

提交文件至git仓库

1.使用如下命令,将文件提交至git暂存区

git add readme.md  --提交至暂存区

2.使用如下命令,将暂存区的文件提交至分支,可以省去readme.md这个文件名,-m后面指的是注释

git commit readme.md -m "write a file"  --从暂存区提交至仓库

3.到此已经将文件提交至本地的git仓库

4.此时修改readme.md文件,将内容修改为如下所示;

this is my second git Project
change the file currently

5.使用如下命令查看当下仓库的状态,从下图可知,git告诉我们readme.md文件被修改,但还没有被提交至仓库

git status  --查看仓库状态

6.使用如下命令查看文件修改内容,

git diff readme.md  --查看readme.md文件修改的内容

7.使用git add命令之后,再次使用git status查看git仓库状态,提示告诉我们,将要被提交的修改包括readme.md

git add readme.md
git status

8.执行git commit将文件提交至仓库,提交完成再次使用git status查看仓库状态,这时已经没有需要提交的修改了

git commit -m "the second commit"
git status

版本回退

1.使用如下命令查看仓库的提交日志,信息很多很杂

git log

2.使用--pretty=oneline,可以查看两次commit的关键信息,主要有commitId和注释

git log --pretty=oneline

3.使用如下命令,可以回到第一个版本

git reset --hard HEAD~1 --1代表往前回退一个版本,如果要回退100个版本,则为~100
或者
git reset --hard HEAD^ --一个^表示往前回退一个版本,如果要往前回退两个版本,则为^^,依次类推

4.这时,再次使用git log命令,发现此时只有一次提交记录,说明版本回退成功,使用cat readme.md查看目前文件中的内容,发现已经回到了最初的内容,回退成功

git log
cat readme.md  --查看文件中的具体内容

 5.此时如果后悔了,想恢复之前修改,就可以通过如下方式找回

git reflog  --查看之前所有命令操作
git reset --hard e30281f  --e30281f即为第二次的commitId

6.此时再次查看readme.md内容,发现已经回到了第二次修改时的状态

git log
cat readme.md

 远程仓库

1.本地仓库搭建完成之后,我们就需要有一个远程仓库来帮我们管理代码,这样就能与他人共享代码,实现团队协作。通过github我们就能实现这样的功能,但是免费的github是对所有人公开的。下面我们就开始使用github.

1.由于本地的git仓库与github仓库之间的传输需要SSH加密,因此我们首先需要创建SSH Key,打开开始中的git bash,输入如下命令,一路回车即可

ssh-keygen -t rsa -C "676541069@qq.com"  --生成ssh key,引号中的为你的邮箱

2.进入到'/c/Users/Administrator下,就会出现.ssh文件夹,里面存放着ssh key的公钥和私钥,如果原来就存在这个文件夹,可以跳过上一个步骤。

 

3.登录github官方网站:https://github.com/,注册账号,并登录。

4.点击setting中添加SSH key,将上方的id_rsa.pub(公钥)中的内容,添加进去,点击Add SSH Key,即可。

 5.添加成功之后,如下所示,这样GitHub就能识别出推送的提交确实是你推送的。

6.下面我们就开始新建一个远程库, 点击右上角的“+”号,然后点击New repository

6.输入一个仓库名称,如下所示

7.如下即为github远程仓库地址,分为SSH地址和HTTP地址,两者都可,具体区别请请查找相关资料,此时的远程仓库为一个空仓库。

8.下面我们回到本地仓库所在的文件夹,打开git bash,使用如下命令将本地仓库与远程仓库进行关联,origin后面即为上图中的github远程仓库地址,使用git remote,查看远程仓库信息,能查询到说明关联成功。

git remote add origin git@github.com:shenyanfei/test-git.git --将本地仓库与远程仓库进行关联
git remote                               --查看远程仓库信息
git remote -v --查看远程仓库信息

9.使用如下命令,将本地代码推送至远程仓库,由于远程仓库为一个空仓库,所以第一次推送需要加上 -u,后面要推送时不需要加上-u,master代表分支,在建立git仓库时,git默认为我们创建git分支,若后期创建了新分支,可修改master

git push -u origin master  --从本地推送代码至远程

10.当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

11.此时再次查看我们刚刚创建的github远程仓库,就会发现它已经不是一个空的仓库,里面多了readme.md文件,这即为我们本地仓库中创建的文件,打开查看文件里面的内容,与本地一致,说明,代码推送成功。

 12.下面我们重新创建一个非空的github远程仓库。勾选上下图中的选项,这样这个github远程仓库就不为空,存在一个README.md文档。

13.打开默认存在README.md文件,里面的内容为我们创建的仓库名称

14.创建分支,搜索分支,如果不存在则会弹出创建的提示,点击即可创建。

15.点击下图中的clone or download即可出现远程仓库地址。

16.使用如下命令,将远程仓库中的内容克隆至本地仓库,准备一个空的文件夹,右键打开git bash,克隆完成之后,发现该文件夹下出现了test-git-pro文件夹,这就是我们克隆下来为项目。

git clone git@github.com:shenyanfei/test-git-pro.git   --克隆远程仓库代码至本地仓库,地址为上图中的地址

17.我们进入到该文件夹,里面有一个READEME.md文件,查看里面的内容,同远程仓库中的相同。

18.修改github上README.md文件,内容如下所示,然后点击commit changes即可

# test-git-pro
I want to test git

19.使用如下命令,从远程仓库中更新本地仓库,再次查看文件中的内容,发现内容已更新

git pull origin master         --从远程仓库中更新代码
cat README.md

 分支管理

1.当我们需要开发一个功能时,但又不确定这个功能是否可行,为了不污染主分支上的内容,我们可以选择重新创建一个分支,开发完成之后,再将该分支合并到主分支,如果中间需要舍弃该功能,我们是需要删除该分支,切换回主分支即可。下面我们就开始创建分支。

2.使用下面的命令我们可以创建一个新分支并切换到该分支

git checkout -b dev  --相当于两条命令
等于
git branch dev --创建一个dev分支
加上
git checkout dev --切换至dev分支

3.创建并切换分支成功之后,我们去修改README.md文件,在最后添加一行内容,如下所示

# test-git-pro
I want to test git
Today is a beautiful day     --最新添加

4.保存成功之后,我们将修改提交至dev仓库,注意,每当有修改需要提交至仓库时都要经过这两步。

git add README.md --提交至git暂存区,提醒git有修改需要提交至仓库
git commit
-m "commit to dev" --提交至git仓库

5.下面我们分别来查看一下dev和master分支上的README.md中的文件,发现dev上的文件中内容修改了,而master上的文件中内容并未需改,再一次体现出git的强大之处。

cat README.md
git checkout master
cat README.md

6.那么怎么才能让master分支也拥有dev分支上的内容,我们只要将dev分支合并至master分支即可

git merge dev  --合并dev至master分支

7.合并完成之后,可以根据需要删除dev分支

git branch         --查看现有分支
git branch -d dev  --删除dev分支(已被合并的分支)
git branch -D dev --强制删除dev分支(未被合并的分支)

解决冲突

1.假设我们刚刚没有删除dev分支,如果已经删除,请重新创建,下面我们将分支切换至dev分支,再次去修改README.md文件,这次是修改而不是添加,我们将最后一行的beautiful改为good,内容如下

# test-git-pro
I want to test git
Today is a good day   --修改beautiful为good

2.我们将修改提交至dev分支,记住还是git add和git commit这两步

git checkout dev                           --切换分支为dev
git add README.md                          --将修改内容提交至git暂存区,提醒git有修改内容需要提交至仓库
git commit -m "change beautiful to good"   --将暂存区内容提交至仓库
cat README.md                              --查看提交之后的文件内容

3.下面我们切换分支到master,然后将README.md中的beautiful修改为sunny,具体内容如下所示。

# test-git-pro
I want to test git
Today is a sunny day    --beautiful改为sunny

4.修改完成将其提交至master分支

git add README.md
git commit -m "change beautiful to sunny"

5.下面我们将dev分支合并至master分支,发现产生了冲突,打开README.md文件,确实产生了冲突,因为master分支和dev分支同时修改了一处内容,而我们的git并不知道该听谁的,所以产生了冲突,统一了意见(sunny还是good,二者选其一)之后才给合并

git merge dev

6.下面我们将master分支上的README.md中的内容改为如下所示。

# test-git-pro
I want to test git
Today is a good day
Tomorrow is a sunny day

7.再次提交并合并,这时合并成功,说明git也不是万能的,当两个分支同时修改一处内容时,在合并时它无法自行合并,这时就需要我们手动解决冲突,然后再进行合并

git add README.md
git commit -m "handle conflict"
git merge dev
cat README.md

 8.开发完成了,现在可以将本地仓库中的代码提交至远程仓库了

git push origin master   --将本地仓库推送至远程仓库

9.推送成功,查看github远程仓库中的READEME.md文件,已经与本地同步

实践

1.下面我们根据上面的方式,将之前创建的nuxt项目使用git来管理。

2.首先我们在github上创建一个空的仓库,同上相同,这里不做截图。

3.我们进入到该项目所在文件夹,右键打开git bash

4.按照下面的步骤,输入命令

git init
git remote add origin git@github.com:shenyanfei/login-pro.git
git add -A .        --一次性推送所有的修改文件
git commit -m "the first commit"
git push -u origin master

5.此时再查看一下github远程仓库,发现代码已经同步上去了,至于远程库中缺少的一些文件,是因为.gitignore文件在发挥作用

6.git地址:git@github.com:shenyanfei/login-pro.git

参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


 说明:本文为原创作品,若有参考会在文中提及,如有遗漏,涉及侵权,请联系本人,将立即修正。

原文地址:https://www.cnblogs.com/shenyf/p/8379318.html