分布式版本控制系统,简单的说其就是 一 个 软件,用于记录一个或若 干文件内容 变化,以便将来查阅特定版本修订情况的软件。




作用: 源代码管理。




为什么要进行源代码管理?



  • 方便多人协同开发
  • 方便版本控制



Github ( ​​https://www.github.com​​) 是-一个为用户提供Git服务的网站,简单说就是一一个可以 放代码的地方(不过可以放的当然不仅是代码)。Github 除了提供管理Git的web界面外。还提供了订阅、关注、讨论组、在线编辑器等丰富的功能。Github被称之为全球最大的基友 网站。




Git下载链接(Windows): ​​Git - Downloading Package​




二、Git的使用



1.本地仓库



    1.1工作流程



    Git本地操作的三个区域:




git的简单应用教程以及建立github仓库_代码托管


初始化git仓库


git init


.git文件时git init创建的


.git 是隐藏文件


我们可以通过Ctrl+H 显示/隐藏 文件


cat ~/.gitconfig ,查看当前用户



git的简单应用教程以及建立github仓库_代码托管_02



git的简单应用教程以及建立github仓库_分布式_03



git的简单应用教程以及建立github仓库_分布式_04



git的简单应用教程以及建立github仓库_git_05



git的简单应用教程以及建立github仓库_git_06




安装好Git后首次使用先进行全局配置


桌面空白处右键,点击 “Git Bash Here” 已打开Git命令行窗口


 git config --global user.name + “用户名”


 git config --global user.email + “邮箱”



git的简单应用教程以及建立github仓库_代码托管_07


(2)创建仓库



git的简单应用教程以及建立github仓库_github_08


a.创建空目录



git的简单应用教程以及建立github仓库_代码仓库_09


b. 在命令行中进入项目目录pro_git



git的简单应用教程以及建立github仓库_代码仓库_10


c.Git仓库初始化(让Git知道,它需要来管理这个目录)


指令:git init 



git的简单应用教程以及建立github仓库_代码托管_11


表现: 执行之后会在项目目录下创建“.git"的隐藏目录,这个目录是Git所创建的,不能删


除,也不能随意更改其中的内容。


(3)Git常用指令操作


  • 查有当前状态: git status             [非必要 ]
  • 添加到缓存区: git add 文件名


说明: git add指令,可以添加一个文件,也可以同时添加多个文件


语法1:git add 文件名


语法2:git add 文件名1 文件名2 文件名3...


语法3:git add.    [添加当前目录到缓冲区中]


  • 提交至版本库: git commit -m“注释内容”


git的简单应用教程以及建立github仓库_github_12


在后续对于文件(可以操作1个或者多个)操作之后,重复使用git add与 git commit指令即可。



1.3时光穿梭机——版本回退


版本回退分为两步骤进行操作:


步骤:


1.查看版本,确定需要回到的时候点


    指令:


            git log


            git log --pretty=oneline


2.回退操作


    指令:


            git reset --hard 版本号



git的简单应用教程以及建立github仓库_github_13


注意:回到过去之后,要想再回到之前最新的版本的时候,则需要使用指令去查看历史操作,已得到最新的commit id。


查看历史操作指令:git reflog



git的简单应用教程以及建立github仓库_git_14


小结:


  • a.要想回到过去,必须先得到commit id,然后通过git reset -hard进行回退;
  • b.要想回到未来,需要使用git reflog进行历史操作查看,得到最新的commit id;
  • c.在写回退指令的时候commit id可以不用写全,git 自动识别,但是也不能写太少,至 少需要写前4位字符



2.远程仓库


线上仓库的操作学习以Github为例


2.1完成线上仓库创建



git的简单应用教程以及建立github仓库_github_15


注意:仓库要求在当前账号下唯一


2.2 两种常规使用方式


2.2.1基于http协议


a.创建空目录,名称就称为shop



git的简单应用教程以及建立github仓库_分布式_16


b.使用clone指令克隆线上仓库到本地


语法:git clone 线上仓库地址



git的简单应用教程以及建立github仓库_github_17



git的简单应用教程以及建立github仓库_代码仓库_18


c.在仓库上座对应的操作(提交暂存区、提交线上仓库、拉取线上仓库)


提交到线上仓库的指令:git push



git的简单应用教程以及建立github仓库_分布式_19



git的简单应用教程以及建立github仓库_github_20


注意:如果提交出错。


需要修改 “.git/config”文件内容



git的简单应用教程以及建立github仓库_分布式_21



拉取线上仓库 :git pull



git的简单应用教程以及建立github仓库_github_22


提醒:


  • 在每天工作的第一件事就是先git pull拉取线上最新·的版本:
  • 每天下班前要做的是git push,将本地代码提交到线上仓库。

2.2.2、基于ssh协议(推荐)


该方式与前面https方式相比,只是影响github对于用户的身份鉴权方式,对于git的具体操作(如提交本地、添加注释、提交远程等操作)没有任何影响。


生成公私钥对指令(需先自行安装OpenSSH):ssh-keygen-t rsa-C"注册邮箱"


步骤:


1.生成客户端公私钥文件


2.将公钥上传到GitHub


实际操作:


1.先生成公钥,到指定位置查找公钥,然后复制内容



git的简单应用教程以及建立github仓库_分布式_23


2.添加公钥到Github



git的简单应用教程以及建立github仓库_git_24


3.输入生成的公钥文件内容(id_rsa.pub)



git的简单应用教程以及建立github仓库_git_25


4.执行后续git操作,操作与先前一样


a.clone线上仓库到本地(git clone)



git的简单应用教程以及建立github仓库_代码托管_26


b.修改文件后添加缓存区



分支相关指令



git的简单应用教程以及建立github仓库_分布式_27



git的简单应用教程以及建立github仓库_git_28


合并分支



git的简单应用教程以及建立github仓库_分布式_29



git的简单应用教程以及建立github仓库_代码仓库_30



2.4、冲突的产生与解决


案例:模拟产生冲突。


①同事在下班之后修改了线上仓库的代码



git的简单应用教程以及建立github仓库_git_31


注意:此时我本地仓库的内容与线上不一致的。



git的简单应用教程以及建立github仓库_github_32


2.第二天上班的时候,我没有做git pull操作,而是直接修改了本地的对应文件的内容



git的简单应用教程以及建立github仓库_代码仓库_33


需要在下班的时候将代码修改提交到线上仓库(git push)



git的简单应用教程以及建立github仓库_github_34


提示我们要再次push之前先git pull操作。


【解决冲突】


4.先git pull



git的简单应用教程以及建立github仓库_github_35


此时git 已经将线上与本地仓库的冲突合并到了对应的文件。


5.打开冲突文件,解决冲突


解决方法:需要和同事(谁先提交的)进行商量,看代码如何保留,将改好的文件再次提交即可。



git的简单应用教程以及建立github仓库_git_36


6.重新提交



git的简单应用教程以及建立github仓库_github_37


线上效果:



git的简单应用教程以及建立github仓库_代码仓库_38



三、Git实用技能


1.图形管理工具


Github for Desktop



git的简单应用教程以及建立github仓库_git_39


Source tree



git的简单应用教程以及建立github仓库_git_40


老牌的GitGUl管理工具了,也号称是最好用的Git GUI工具。功能丰富,基本操作和高


级操作都非常流畅,适合初学者.上手。


TortoiseGit



git的简单应用教程以及建立github仓库_github_41


对于熟悉SVN的开发人员来说,这个小乌龟图标应该是非常友善了。JortoiseGit 简称


tgit,中文名海龟Git。它与其前辈TortoiseSVN都是非常优秀的开源版本控制客户端软件。


2.忽略文件


    场景:在项目目录下有很多万年不变的文件目录,例如Sss、is、 images 等,或者还有


一些目录即便有改动,我们也不想让其提交到远程仓库的文档,此时我们可以使用“忽略文


件”机制来实现需求。


    忽略文件需要新建-一个名为gitignore.的文件,该文件用于声明忽略文件或不忽略文件


的规则,规则对当前目录及其子目录生效。


注意: 该文件因为没有文件名,没办法直接在windows 目录下直接创建,可以通过命


令行Git Bash来touch创建。



git的简单应用教程以及建立github仓库_分布式_42


案例:


1.先在本地仓库中新建一个js目录以及目录中js文件


p > withSSH > shop >js