常用的版本控制工具 · Github的基础

安装

git for windows下载

git 配置

命令列表

在进行任何 Git 操作之前,都要先切换到 Git 仓库目录,也就是先要先切换到项
目的文件夹目录下

新建git仓库并初始化
  1. 新建test文件夹
  2. 在test内打开git命令行界面
  3. ==git init== 初始化该文件夹为仓库

这里写图片描述
如图,初始化后出现了蓝色括号master分支

查看仓库状态 git status

比如说,先在test/下新建个a.md文件,在查看状态

这里写图片描述

如图显示,还未提交有未追踪(track)文件 a.md ,使用 git add <file> 追踪文件

向缓存区提交文件 git add

这里写图片描述

如图add提交后,再次查看仓库状态。

  • 提示以下文件 Changes to be committed , 意思就是 a.md 文件等待被提交
  • 可以使用 git rm --cached <file> 清空该缓存
向仓库提交 git commit -m’mes’

这里写图片描述

如图输入git commit -m 'first commit',用来提交仓库文件,-m [mes]用来指明提交信息

再次查看状态,显示没有什么需提交的

git add 是先把改动添加到一个「暂存区」,你可以理解成是一个缓存区域,临
时保存你的改动,而 git commit 才是最后真正的提交。这样做的好处就是防止误提交


这里写图片描述
流程图如上所示

  • 修改被追踪文件
    • 同样的流程:add、commit一遍
  • 删除被追踪的文件/目录 【取消追踪】
    • git rm --cached 文件名,将文件从缓存中删除,不会删除实际物理文件
    • git rm --cached -r 目录,同上只是删除文件夹
    • git commit -m'mesg',然后提交
    • 如果要删除实际物理文件,git rm --f 文件名
查看所有提交记录 git log

这里写图片描述

会显示作者(初始配置时设置的)、时间、提交信息

分支(branch) 新建并选择分支

分支: 简而言之就是树枝分叉,为了协同合作,不同人的工作在不同分支下进行互不影响,最后再合并一起

初始化时会默认创建主分支master并使用

  • git branch 查看分支情况
  • git branch 新建分支
  • git checkout 选择所用分支
  • 新建并选择分支 git checkout -b <b_name>,一步到位

这里写图片描述

如图可知,所选择的分支前都会有个 *

  • git branch -a 查看本地和远程所有分支
  • git checkout -b [b_name] origin/ [b_name] 创建远程分支到本地
合并分支 git merge

在分支上代码通过测试后,想要合并到主分支上,两步走:

  1. 切换到主分支master
  2. git merge <b_name> 合并欲合并的分支b_name

==注意了==

这个时候可能会有冲突而合并失败,留个包袱,这个到后面进阶的时候再讲

本地删除分支 git branch -d/-D < b_name>【-D 强制删除】

不能尝试删除当前所在分支状态下的分支(就是当前选择了other分支,就不能删除other分支)

远端删除分支 git push origin :< b_name>
版本标签 git tag

我们在客户端开发的时候经常有版本的概念,比如v1.0、v1.1之类的,不同的版本肯定对应不
同的代码,所以我一般要给我们的代码加上标签,这样假设v1.1版本出了一个新bug,但是又
不晓得v1.0是不是有这个bug,有了标签就可以顺利切换到v1.0的代码,重新打个包测试了。

  • 新建标签git tag <tag_name>
  • 查看版本标签git tag
  • 切换版本git checkout <tag_name>

向远程Github仓库提交代码

基于SSH网络协议授权

SSH是一种网络协议,用于计算机之间的加密登录。

生成SSH Key

Git BASH中输入ssh-keygen -t rsa,指定rsa算法生成密钥

注意:ssh-keygen中间没有空格,否则==会报 Bad escape character ‘ygen’. 的错误==

注意了接着连续三个回车键(不需要输入密码),免密登录
这里写图片描述

如图所示会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,
id_rsa.pub 就是公钥。

因为我这里原本已经有密钥,所以多了一步 Overwrite(y/n) ?

我Windows默认是保存在 c:/userss/username/.ssh 文件夹下

Github配置SSH Key

这里写图片描述

如图示,在setting中的 SSH and GPG Keys 中,点击右上角 New SSH Key

这里写图片描述

只要将id_rsa.pub中的内容粘贴到Key中,然后点击添加即可

之后,在git bash 中输入ssh -T git@github.com 测试,如果出现如图所示,则配置成功

这里写图片描述

从Github上克隆【clone】项目、推送【push】、下拉【pull】代码

为了测试在Github上新建了个项目git-test,点击 clone or download,选择使用 Use SSH,复制它提供的passphare,如git@github.com:josonle/git-test.git

  • 进入git bash,随便选个文件夹(比如桌面),命令行输入
git clone git@github.com:josonle/git-test.git

这里写图片描述

如图,克隆成功了,而且clone下来的项目默认就是仓库,主分支是origin/master

  • 随便修改下git-test项目,然后commit,再通过命令行输入
git push origin master

这里写图片描述

如图,向主分支master推送成功

  • 下拉项目更新内容

我在github上手动新建分支other,该分支下新建test-v0.1.md文件。然后类似上文输入

git pull origin master

这里写图片描述

如图,毫无变化。那是当然,因为这里下拉的是master分支

git pull

直接查看所有变化
这里写图片描述

如图,它下拉显示了一个新分支other,然后我们可以把other分支下拉

git pull origin other

这里写图片描述

本地仓库test2向远程不同名仓库test提交
  1. 切换到test2目录下
  2. 关联test2项目和远程项目test
git remote add origin git@github.com:stormzhang/test.git

origin是给远程项目仓库起的名,公认都是origin

查看本地当前项目有哪些远程仓库可以执行如下命令:

git remote -v

设置好后,就可以像上文一样提交

git push origin <分支名>
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐