zoukankan      html  css  js  c++  java
  • 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


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

  • 相关阅读:
    Java中关于String类型的10个问题
    关于Linux中后台运行程序(&)退出时收不到SIGHUP信号的说明
    《Javascript DOM编程艺术》学习笔记 第8章 充实文档的内容
    《Javascript DOM编程艺术》学习笔记 第7章 动态创建标记
    《Javascript DOM编程艺术》学习笔记 第1-6章
    golang: 读取已关闭的缓冲型channel的表现
    关于《汇编语言(王爽)》程序6.3使用16个dw 0的问题
    关于寄存器的一些笔记
    img格式镜像转ISO格式
    深入理解计算机操作系统:第1章 计算机系统漫游(学习笔记)
  • 原文地址:https://www.cnblogs.com/shenyf/p/8379318.html
Copyright © 2011-2022 走看看