前后端交互学习笔记(一):Git和Github的使用

Git和Github的使用

文章目录

    • Git和Github的使用
      • 1. Git
        • 版本控制
        • Git基础
        • Git基本命令(提交修改等操作的命令)
      • 2. Github
        • 基础介绍
        • Github文件交互方式(SSH)
      • 3. Git分支
        • Git分支 常用命令

1. Git

版本控制

版本控制软件是一个用来记录文件变化,以便将来查阅特定版本修订情况的系统,因此有时也叫做“版本控制系统”。

版本控制系统的分类,本地直接放在客户本地,集中,将最新版本放本地,其它放服务器,但是服务器坏了,就全崩了(代表SVN)且不支持离线,分布,本地和客户都保留全部的版本,谁坏了就从另一方恢复(代表Git):
前后端交互学习笔记(一):Git和Github的使用_第1张图片

Git基础

Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。Git直接完整记录快照,而非只记录差异,这样便于版本之间的切换,但就是有点浪费内存,而且所有操作都是本地执行

  1. 使用 Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库。对应的三个状态如下:
    • 工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。
    • 如果文件已修改并放入暂存区,就属于已暂存状态。
    • 如果 Git 仓库中保存着特定版本的文件,就属于已提交状态。
  2. Git的工作流程:① 在工作区中修改文件② 将你想要下次提交的更改进行暂存③ 提交更新,找到暂存区的文件,将快照永久性存储到 Git 仓库
  3. Git安装路径:https://git-scm.com/downloads,运行完之后在git对应的文件夹下进行使用
  4. 安装完 Git 之后,要做的第一件事就是设置自己的用户名和邮件地址。因为通过 Git 对项目进行版本管理的时候,Git 需要使用这些基本信息,来记录是谁对项目进行了操作.在Git.bash中进行操作:
    在这里插入图片描述
    使用了 --global 选项,那么该命令只需要运行一次,即可永久生效。
    可以在C:/Users/用户名文件夹/.gitconfig 文件中查看自己曾经对 Git 做了哪些全局性的配置。
  5. 工作区文件有四种状态,分别如下所示,Git 操作的终极结果:让工作区中的文件都处于“未修改”的状态:
    前后端交互学习笔记(一):Git和Github的使用_第2张图片
  6. 获取 Git 仓库的两种方式,能够在自己的电脑上得到一个可用的 Git 仓库:
    ① 将尚未进行版本控制的本地目录转换为 Git 仓库
    ② 从其它服务器克隆一个已存在的 Git 仓库
Git基本命令(提交修改等操作的命令)
  • git help config(直接在浏览器打开)获取帮助信息,想要直接在终端打开,使用 git config -h即可

  • 在项目目录中,通过鼠标右键打开“Git Bash”, 执行 git init 命令将当前的目录转化为 Git 仓库。git init 命令会创建一个名为 .git 的隐藏目录,这个 .git 目录就是当前项目的 Git 仓库,里面包含了初始的必要文件,这些文件是 Git 仓库的必要组成部分。

  • 可以使用 git status 命令查看文件处于什么状态, Untracked files(未跟踪的文件), 也可以使用精简的形式git status -s或者git status --short,未跟踪文件前面会有两个红色的感叹号。Changes to be committed 这行的下面,说明已被跟踪,并处于暂存状态,精简方式是会在文件前面有一个绿色的A

  • 使用命令 git add 文件名,后面写上要跟踪文件名,运行后该文件就会处于Changes to be committed 状态。

  • 将暂存区的文件与Git仓库文件内容保持一致(要保证所有的项目文件都已经放到了暂存区),提交到Git仓库进行保存,使用,git commit -m “提交的描述信息”,此时git status 为nothing to commit, working tree clean证明工作区中所有的文件都处于未修改的状态,没有任何文件需要被提交

  • 对已经提交的文件进行修改后,git status 为红色的modified,代表已修改,此时-s为红色的M

    • 将已修改的文件执行add的操作后为绿色的modified,绿色的M,代表已经把已跟踪的、且已修改的文件放到暂存区
    • 继续执行commit的命令后,文件又恢复到“未修改”的最终状态
    • 撤销对文件的修改指的是:把对工作区中对应文件的修改,还原成 Git 仓库中所保存的版本。要注意此修改后的文件没有提交到git仓库(也不能是暂存状态)中,使用git checkout – 文件名称,将其恢复到暂存或者已经被提交后的状态
  • git add . 一次性将所有的新增和修改过的文件加入暂存区

  • git reset HEAD 要移除的文件名,或者直接git reset . 将全部文件从暂存区移出

  • git commit -a -m “描述信息” 可以直接将已经放入工作区中的文件直接放到本地git仓库,从而跳过暂存区

  • Git 仓库中移除文件的方式有两种:
    ① 从 Git 仓库和工作区(本地)中同时移除对应的文件 git rm -f 文件名
    ② 只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件git rm --cached 文件名
    此时状态会变成绿色的D

创建一个名为 .gitignore 的配置文件(直接创建修改名字),列出要忽略的文件的匹配模式,使得这些文件无需纳入 Git 的管理:
① 以 # 开头的是注释
② 以 / 结尾的是目录
③ 以 / 开头防止递归,意思只匹配这个目录下的,其它目录下的改内容不受影响)
④ 以 ! 开头表示取反
⑤ 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式),常用的正则表达式

  • git log 如果希望回顾项目的提交历史,具体使用总结如下。自定义格式中间可以使用其它连接如“-”:
    前后端交互学习笔记(一):Git和Github的使用_第3张图片
  • 可以使用如下命令,将文件返回至指定的版本,回退到以前版本要还想查看之前的全部历史,需要使用下述第三条命令:
    前后端交互学习笔记(一):Git和Github的使用_第4张图片

2. Github

基础介绍

开源是指不仅提供程序还提供程序的源代码 。闭源是只提供程序,不提供源代码。开源并不意味着完全没有限制,为了限制使用者的使用范围和保护作者的权利,每个开源项目都应该遵守开源 许可协议(Open Source License) ,常用的为GPL和MIT
前后端交互学习笔记(一):Git和Github的使用_第5张图片

  1. 专门存放开源项目源代码的网站,叫做开源项目托管平台,常用的如下,因为都是以Git管理为基础,故都以Git开头:
    前后端交互学习笔记(一):Git和Github的使用_第6张图片
  2. Github 是全球最大的开源项目托管平台。因为只支持Git作为唯一的版本控制工具,常用的功能如下:
    前后端交互学习笔记(一):Git和Github的使用_第7张图片
  3. Github 上的远程仓库,有两种访问方式,分别是HTTPS 和SSH。它们的区别是:
    ①HTTPS :零配置;但是每次访问仓库时,需要重复输入Github 的账号和密码才能访问成功
    ②SSH:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需重复输入Github 的账号和密码,推荐使用SSH的方式进行访问
Github文件交互方式(SSH)
  1. 生成SSH key的方法如下,不用在意bash的路径,其都会在c盘生成对应的文件:
    前后端交互学习笔记(一):Git和Github的使用_第8张图片
  2. 配置SSH Key的方法:
    前后端交互学习笔记(一):Git和Github的使用_第9张图片
  3. 测试SSH Key是否配置成功
    • ssh -T [email protected] 输入yes 看到下述信息,证明成功:Hi 你的github用户名! You’ve successfully authenticated, but GitHub does not provide shell access.
  4. 使用ssh上传文件,首先还是先把git前面的配置好(包括SSH的设置,设置一次就行,不用像http那样每次都要用户名和密码),然后提交到仓库后,执行下述命令后刷新即可:
    前后端交互学习笔记(一):Git和Github的使用_第10张图片
  5. 将远程仓库的数据克隆到本地,使用git clone 远程仓库的地址,远程仓库的地址可以从下面进行获取,优先选择ssh形式的:
    前后端交互学习笔记(一):Git和Github的使用_第11张图片
    需要注意的是,虽然本地上传的文件名和git仓库可以不一致,但是从git仓库下载的就是git仓库中的文件名
  6. git remote -v 查看远程仓库的地址

3. Git分支

分支的使用:在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目 功能的开发。

初始化本地Git仓库的时候,Git默认已经帮我们创建了一个名字叫做master 的分支。通常我们把这个 master 分支叫做主分支。 master 主分支的作用是:用来保存和记录整个项目已完成的功能代码。 因此,不允许程序员直接在master 分支上修改代码,因为这样容易导致整个项目崩溃。为了开发,便有了功能分支,功能分支指的是专门用来开发新功能的分支,它是临时从master 主分支上分叉出来的,当新功能开发且测试 完毕后,最终需要合并到master 主分支上。

在两个不同的分支中对同一文件进行了修改并提交仓库后,进行文件的合并的时候会发生冲突,这个时候需要手动打开冲突的文件,进行修改,然后再提交到git即可。

Git分支 常用命令
  • git branch 结果前面带*表示当前所处的分支。
  • git branch 分支名称创建一个新的分支,此时,新分支的代码和当前分支完全一样,并且执行完该语句后还是处于之前的那个分支中。
  • git checkout 分支名称实现切换分支。
  • git checkout -b 分支名称创建并且切换到该分支上。
  • git checkout A然后git merge B,即吧B分支的内容合并到A分支上,注意,在完成分支上的功能后别忘了将其add和提交git后,在进行切换合并
  • git branch -d 删除的分支删除本地分支,注意不要删除当前所在的分支,且保证被删除的分支已经被合并
  • git branch -D 删除的分支强制删除本地分支,注意不要删除当前所在的分支,且不管是否已经被合并
  • git push 远程仓库名称 --delete 远程分支名称 删除远程仓库中的分支
  • git push -u 远程仓库名称 本地分支的名字:提交到仓库后的重命名将远程仓库github中没有的分支提交到github,注意,没有的时候爷提交需要加 -u 存在后直接git push即可,同时,如果提交之后不需要重命名,冒号后面可以省略不写。远程仓库的别名默认情况下为origin
  • git remote show 远程仓库的名字(默认origin)查看远程仓库(github)的所有分支
  • git checkout 远程分支的名称 从远程仓库中下载分支到本地
  • git checkout -b 本地分支名称 远程仓库名称/远程分支名称 远程仓库的别名默认情况下为origin,将远程仓库中的分支下载到本地并进行重命名,并且当前处于下载后的新分支上。

你可能感兴趣的:(git,github)