Blogger Information
Blog 128
fans 9
comment 5
visits 241272
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
【Git版本控制】Git版本控制工具使用教程和远程仓库的上传拉取操作详解
 一纸荒凉* Armani
Original
1589 people have browsed it

【Git版本控制】Git版本控制工具使用说明和规范教程

windows环境下的Git版本控制工具使用说明和规范。

一、Git的安装与使用

1.1 前言

SVN是集中式版本控制系统,版本库集中放在中央服务器上,而干活时用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作。

Git则是分布式版本控制系统,即它就没有中央服务器,每个人的电脑就有一个属于自己的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。最终,各自将本地分支先合并,再将合并后的分支推向同名的远程库。

Git和GitHub的区别:Git是分布式版本管理工具,而GitHub是一个网站,可以在github上建立一个网上仓库,然后提交自己的代码到该网上仓库,这样你的每次提交,别人也都可以看到你的代码,同时别人也可以帮你修改你的代码,这种开源的方式非常方便程序员之间的交流和学习。

GitHub是一个非常适合程序员交流的网站,很多国际上的技术大牛都在github上有自己的开源代码,其他人只要申请个账号就可以随意的看到这些大牛写的程序。同时国内的很多互联网公司如百度,阿里等也在github上公布有开源的代码。

Git本地有三个工作区域:工作目录、暂存区、资源库。如果加上远程的Git库就可以分为四个工作区域

  • 工作区(Workspace):就是平时存放项目代码的地方

  • 暂存区(Index/Stage):用于临时存放对文件的改动,事实上就是一个文件,保存即将提交到文件列表信息

  • 资源库(Repository):就是安全存放数据的位置,这里有你提交到所有版本的数据,期中HEAD指向最新放入仓库的版本

  • 远程仓库(Remote Directory):就是托管代码的服务器,简单地说就是项目组中的一台电脑用于远程数据交换

工作区、本地库、远程库三者之间的工作原理及流程如下图:

1.2 版本控制

  • 日常生活中,在word里编辑文字,使用Ctrl + z撤销,或者点击撤销按钮,其实也是一个版本控制的例子
  • 我们在开发中修改代码,问了避免出错,都将其先复制一份在进行代码的开发和修改,我们称之为版本更新,一般命名为v1.0 v1.1 ,大的版本变更则命名为 v2.0 v3.0。有必要,因为人工的去处理不同的版本,做相应备份会很麻烦。
  • 对于git来说,版本控制功能更加强大,更加便于版本更新迭代的操作。

1.3 Git安装流程

初次接触Git的用户,请抽出几分钟时间看一下https://git-scm.com/docs 的介绍文档,相信磨刀不误砍柴工。

本文针对Window平台的Git客户端的安装和使用。

Git 下载地址:https://git-scm.com/downloads

window版本下载:https://git-scm.com/download/win

下载完成后,双击进行安装

安装 Git 并选择所有默认选项,安装完毕后,在系统的任意地方右键点击Git Bash Here在命令行工具中运行 git,如果显示使用信息,则安装完成。

1.4 Git初始配置

在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。

  1. # 设置你的 Git 用户名
  2. git config --global user.name "<Your-Full-Name>"
  3. # 设置你的 Git 邮箱
  4. git config --global user.email "<your-email-address>"
  5. # 确保 Git 输出内容带有颜色标记
  6. git config --global color.ui auto
  7. # 对比显示原始状态
  8. git config --global merge.conflictstyle diff3
  9. git config --list

Git 与代码编辑器
最后一个配置步骤是让 Git 能与你的代码编辑器结合使用。以下是三个最热门的代码编辑器。

  1. #Atom Editor 设置
  2. git config --global core.editor "atom --wait"
  3. #Sublime Text 设置
  4. git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe' -n -w"
  5. #VSCode 设置
  6. git config --global core.editor "code --wait"

1.5 Git工作流程

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域;
  3. 将暂存区域的文件提交到Git仓库;
  4. 提交到远程仓库中

因此,Git管理的文件有三种状态,已修改(modified)、已暂存(staged)、已提交(committed)。

二、Git的使用操作

序号 Git命令 说明
1 git init 初始化本地版本库。
2 git status 查看当前工作区和暂存区文件的状态。
3 git add <file>... 可以将文件添加到暂存区。
4 git commit -m ' ' 提交更新。

2.1 初始化Git仓库

  • 这个仓库会存放,git对我们项目代码进行备份的文件
  • 在项目目录右键打开 git bash
  • 命令: git init

2.2 Git用户信息配置

  • 就是在git中设置当前使用的用户是谁

  • 每一次备份都会把当前备份者的信息存储起来

  • 命令:

    • 配置用户名:git config --global user.name "xiaoming"
    • 配置邮箱: git config --global user.email "xm@sina.com"

    查看是否配置成功

2.3 把代码存储到.git仓储中

工作区、暂存区以及版本库三者之间的关系。

工作区:就是你在电脑上看到的目录,比如目录testgit下的所有文件(.git版本库目录除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。

暂存区(stage):工作区有一个.git隐藏目录,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有就是Git为我们自动创建的第一个master分支。

在Git中每次提交都分为两个步骤:

第一步:用add命令将文件添加到版本库的暂存区

第二步:用commit命令把暂存区的所有内容提交到当前分支上

    1. 把代码放到仓储的门口
    • git add ./readme.md 所指定的文件放到大门口
    • git add ./ 把所有的修改的文件添加到大门口
    1. 把仓储门口的代码放到里面的房间中去
    • git commit -m "这是对这次添加的东西的说明"
    1. add和commit合并写法 可以一次性把我们修改的代码放到版本库
    • git commit --all -m "一些说明"

    • —all 表示是把所有修改的文件提交到版本库

  1. git add ./readme.md // 添加暂存区
  2. git commit -m '提交更新说明' // 提交更新
  3. git status // 查看当前状态

2.4 查看当前状态

当暂存区域已经准备妥当可以提交时,在此之前,请一定要确认还有什么修改过的,或新建的文件还没有git add到暂存区,否则提交的时候不会记录这些还没暂存起来的变化。

所以,每次准备提交前,先用git status查看下,需要提交的文件是不是都已暂存起来了,然后再运行提交命令git commit -m '备注信息'

  • 可以用来查看当前代码有没有被放到仓储中去
  • 命令: git status

2.5 git中的忽略文件

  • .gitignore,在这个文件中可以设置要被忽略的文件或者目录。
  • 被忽略的文件不会被提交仓储里去.
  • 在.gitignore中可以书写要被忽略的文件的路径,以/开头,
    一行写一个路径,这些路径所对应的文件都会被忽略,
    不会被提交到仓储中
    • 写法
      • /.idea 会忽略.idea文件
      • /js 会忽略js目录里的所有文件
      • /js/*.js 会忽略js目录下所有js文件

2.6 查看提交的日志

  • git log 查看历史提交的日志
  • git log --oneline 可以看到简洁版的日志

2.7 回退到指定的版本

  • git reset --hard Head~0
    • 表示回退到上一次代码提交时的状态
  • git reset --hard Head~1

    • 表示回退到上上次代码提交时的状态
  • git reset --hard [版本号]

    • 可以通过版本号精确的回退到某一次提交时的状态
  • git reflog

    • 可以看到每一次切换版本的记录:可以看到所有提交的版本号

注意:通过版本号回退到例如第一版,在想退回到第五版时,需要提前记住版本号,这时在第一版打印git log历史记录提交日志,是看不见后面的版本记录的。但也不必过于担心,可以通过git reflog查看版本的切换记录从而得到版本号


2.8 Git分支

Git之所以能实现分布式版本控制,就是基于其分支管理策略。本地库所做的操作都是在某分支上进行的,不同分支之间可以合并。可以拉取远程分支到本地,也可以推送本地分支到远程。

  1. git branch <branchName> #创建新的分支
  2. git branch -d <branchName> #删除已有分支
  3. git checkout <branchName> #切换到其它分支上
  4. git checkout -b <branchName> #创建并切换分支
  5. git merge <branchName> #合并branchName分支到当前分支上
  6. git branch -r #查看远程分支
  7. git branch -a #查看远程及本地的所有分支,当前分支前加"*"号
  • 默认是有一个主分支master

创建分支

  • git branch dev
    • 创建了一个dev分支
    • 在刚创建时dev分支里的东西和master分支里的东西是一样的

切换分支

  • git checkout dev
    • 切换到指定的分支,这里的切换到名为dev的分支
      git branch 可以查看当前有哪些分支

注意:如果在当前分支未提交更新,切换到其他分支,会将修改后未提交的文件和状态一同带到切换的分支中

创建并切换分支

  • git checkout -b dev
    • 创建并切换到该分支中

合并分支

  • git merge dev
    • 合并分支内容,把当前分支与指定的分支(dev),进行合并
    • 当前分支指的是git branch命令输出的前面有*号的分支
  • 合并时如果有冲突,需要手动去处理,处理后还需要再提交一次.
  • 冲突:在两个分支都进行了修改,合并时代码无法判断以哪个为准,所以需要我们人为的修改文件内容。
  • 他是将两个文件都修改的内容通过区域划分合并在一起了,我们手动修改需要保存的文件内容即可。

三、工欲善其事必先利其器

工欲善其事必先利其器,工具的熟练掌握、合理利用,修改记录保存完整,后期检索跟踪问题,以及多项目软件切换合并才能简单易操作,才能保证代码的质量。

提交代码到远程仓库

你完全可以在一个“远程”仓库上工作,而实际上它在你本地的主机上。 词语“远程”未必表示仓库在网络或互联网上的其它位置,而只是表示它在别处。 在这样的远程仓库上工作,仍然需要和其它远程仓库上一样的标准推送、拉取和抓取操作。

远程仓库有很多,比较典型的有GithubCoddingGitee

Github账号申请

GitHub是一个代码托管平台,支持多人合作完成项目,在GitHub上你可以找到大量开源的代码,程序员们可以通过这个平台进行有效社交与合作。

打开网址:https://github.com

进入Git官网,点击右上角的sign up进入注册页

输入用户名“Username”、邮箱地址“Email address”、密码“Passport”,再点击下方的“Create account”提交

选择适合自己的免费或者收费的选项,默认是免费的选项,再点继续“Continue”

登录注册时填写用户名或邮箱,会收到GitHub发的验证邮件,点击“Verify email address”跳转到GitHub页面就大功告成了

登录后点击右上角’New repository’创建远程仓库

创建完成会跳转到仓库中,点击HTTP和SSH可以获取仓库地址

查看远程仓库

如果想查看你已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin ——这是 Git 给你克隆的仓库服务器的默认名字:orgin

添加远程仓库

运行 git remote add <简称> <远程仓库地址> 添加一个新的远程 Git 仓库,同时指定一个方便使用的简写。下次执行拉取、克隆、提交等命令就可以通过简写名称省略远程仓库地址了。

本地仓库和远程仓库建立连接

  • git remote add origin <远程库的网址>

把当前分支的内容上传到远程的master分支上

  • git push [远程库的地址] master

    • 示例: git push https://github.com/Zevs6/blogimg5.git master
  • 简写:git push origin -u master当加上-u参数后面就可以直接写 git push 即可

  • 加上-u参数,git会把当前分支与远程的指定分支进行关联 git push origin master

pull命令拉取远程分支并与本地分支合并

  • git pull [远程地址] master

    • 示例: git pull https://github.com/Zevs6/blogimg4.git master

clone命令克隆远程库到本地

  • git clone <远程库的网址>
  • 示例: git clone https://github.com/Zevs6/blogimg5.git master

pull拉取和clone克隆的区别,pull拉取需要本地提前有一个初始化的仓库,而clone克隆无需本地初始化项目,他会直接将远程的仓库连同文件夹一同下载到本地中。

新建仓库并提交到远程

  1. echo "# my-study" >> README.md
  2. git init
  3. git add ./README.md
  4. git commit -m 'first commit'
  5. git remote add origin git@github.com:zevs6/my-study.git
  6. git push -u origin master
  7. // git push

ssh方式上传代码

  • 公钥id_rsa.pub 私钥id_rsa 两者之间关联绑定
  • 生成公钥和私钥 ssh-keygen -t rsa -C '2602138376@qq.com'

  • 默认存储在 C:\Users\Administrator\.ssh

  • 复制id_rsa.pub内容到github上settings=>SSH and GPG keys=>New SSH key保存即可

  • 这时候我们推送仓储就无需输入密码了,通过这种方式避免了密码泄露,只需要将推送者的电脑公钥绑定到github中


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post