github客户端与git使用指南

 

目录

 

一、环境配置

1. 首先本地安装git

2. 到github使用邮箱注册账号

3. 将github与git关联起来

4. github客户端安装(可选)

二、git指令

三、github客户端使用指南

1. 基本概念

2. 对版本的基本操作

3. 分支branch

4. 团队协作

5. 贡献开源项目流程

6. 额外的功能

四、git服务器搭建


一、环境配置

1. 首先本地安装git

安装教程:https://www.runoob.com/git/git-install-setup.html

windows系统直接到 https://gitforwindows.org/ 下载并安装

可以下载Sourcetree作为git客户端使用

2. 到github使用邮箱注册账号

3. 将github与git关联起来

参考链接:https://www.runoob.com/git/git-remote-repo.html

https://www.runoob.com/w3cnote/git-guide.html

步骤:

(1)打开安装好的Git文件夹下的git-bash.exe

(2)输入

$ ssh-keygen -t rsa -C "[email protected]"

然后一路回车

(3)然后会生成.ssh文件,将id_rsa.pub用notepad++打开,并复制。(因为本地Git仓库和GitHub仓库之间的传输是通过SSH加密传输的,GitHub需要识别是否是你推送,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送,所以需要配置ssh key。id_rsa和id_rsa.pub就是SSH Key的秘钥对,id_rsa是私钥,不能泄露,id_rsa.pub是公钥,可以公开。)

github客户端与git使用指南_第1张图片

打开setting,将复制的黏贴到图中key的位置,title可以随便填。

github客户端与git使用指南_第2张图片

(4)为了验证是否成功,在git bash下输入:

$ ssh -T [email protected]
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.

出现以上结果,说明连接成功了。

(5)Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以需要配置用户名和邮箱地址。(global是针对所有仓库)

$ git config --global user.name 'runoob'
$ git config --global user.email [email protected]

用户名和邮箱信息可于github客户端中修改。

github客户端与git使用指南_第3张图片

4. github客户端安装(可选)

直接到 https://desktop.github.com/ 下载安装即可,然后打开客户端登录自己的账号。

github客户端使用指南:https://gitbeijing.com/  (这个文档对应的github网页和github客户端比较版本比较老的,有些地方不太一致)

配套慕课网课程:https://www.imooc.com/learn/390 (版本控制入门 – 搬进 Github)

二、git指令

直接看:https://www.runoob.com/git/git-tutorial.html 总结得挺好的。

快速git 指令 https://www.cnblogs.com/my--sunshine/p/7093412.html

https://www.cnblogs.com/Gxiaopan/p/6714539.html

git中的撤销和回滚操作:https://blog.csdn.net/ligang2585116/article/details/71094887

快速github指令(标准,但是是英文版):https://www.runoob.com/manual/github-git-cheat-sheet.pdf

git clone/git pull/git fetch 三者的区别:https://segmentfault.com/a/1190000017030384

部分总结:

(1)总体流程

暂存区其实挺重要的,又可以作为本地电脑的一份备份,又不会产生版本信息。

github客户端与git使用指南_第4张图片

(2)本地仓库与远程仓库关联

将github网页上新建的仓库与本地的文件夹关联起来,并push(origin是远程的意思

1. // 本地初始化仓库
   $ git init reponame
2. 在github官网上创建同名仓库
3. 将本地仓库与github的仓库相关联
   $ git remote add origin [email protected]:tianqixin/runoob-git-test.git
4. 将本地的仓库 push 到远端仓库的master分支
   $ git push -u origin master

(3)标签管理

  • 查看所有标签    git tag
  • 创建标签           git tag name
  • 指定提交信息    git tag -a name -m "comment"
  • 删除标签           git tag -d name
  • 标签发布           git push origin name

(4) 常用指令

git init
在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.
git clone [url]
获取一个url对应的远程Git repo, 创建一个local copy
git status
查询repo的状态.
git status -s
-s表示short, -s的输出标记会有两列,第一列是对staging区域而言,第二列是对working目录而言.
git log
展示分支的commit历史
git add . 
工作时的所有变化提交到暂存区(git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore把任何文件都加入)
git add file
将指定文件提交到暂存区
git commit -m “the commit message"
commit时添加描述
git commit -a 
跳过add直接commit
git push 
push所有分支(clone 是本地没有 repository 时,将远程 repository 整个下载过来。pull 是本地有 repository 时,将远程 repository 里新的 commit 数据(如有的话)下载过来,并且与本地代码merge)
git push origin master 
将本地主分支推到远程主分支
git reset HEAD
取消已缓存的内容
git branch (branchname)
创建分支命令
git checkout (branchname)
切换分支命令
git merge sub-branch
将子分支合并到master
git pull 
抓取远程仓库所有分支更新并合并到本地
git revert
反转撤销提交.只要把出错的提交(commit)的名字(reference)作为参数传给命令就可以了.
git revert HEAD
撤销最近的一个提交.

git log

git log --oneline --number: 每条log只显示一行,显示number条

三、github客户端使用指南

1. 基本概念

一次 commit 就对应着一个版本,点击14 commits 可查看详细的commit历史。继续点击简写形式的版本号(只有7位)可查看详细的改版内容,包括完整的40位16进制版本号。

github客户端与git使用指南_第5张图片

当前分支不等于默认分支

2. 对版本的基本操作

(1)不仅可以选择添加哪个文件到下一个版本中,还可以选择添加文件的部分内容到下一个版本中。

github客户端与git使用指南_第6张图片

(2)选择undo可以撤销上一次commit的版本,只适用于没有同步(push)到github上的版本。

github客户端与git使用指南_第7张图片

(3)如果已经同步到github上,可以在历史版本上右键,选择revert this commit,然后push到github,即可抵消上一次commit的操作。(同时会修改本地的文件)

(4)如果要选择回滚到某次commit,可以在历史版本上右键,选择roll back to this commit。(免费版的github客户端没有这个功能,可以选择使用git指令来实现)。

3. 分支branch

(1)分支合并分为两种方式:merge 和 rebase

merge:合并分支时,首先把当前分支切换为主分支,然后把分分支merge到主分支。

github客户端与git使用指南_第8张图片

rebase:

github客户端与git使用指南_第9张图片

(2)区别:你可以认为rebase的作用是修剪枝杈,merge只是按照操作顺序进行合并代码,不按时间顺序的commit只能作为分支嫁接到主干上。rebase就是把这些枝杈剪下来,按照时间重排之后重新嫁接到主干上,因此被rebase修剪过的commit会非常好看,在分支图上看到的是一条直线。缺点就是你的merge不按时间顺序来的太多,会导致以前解决过的冲突全部重新解决一次,非常痛苦,因此选用rebase还是merge团队一开始就必须规定好,否则后期调整很麻烦。

(3)合并分支导致的代码冲突:

但是如果在两个分支上改动了同一个地方,合并的就会出现代码冲突。 因为 git 不知道该听哪个分支的,所以只能报出冲突的位置,让开发者手动解决。

4. 团队协作

整个 Github Flow 的几个步骤:

第一步,创建新分支,用来开发这个新功能。如下图所示

github客户端与git使用指南_第10张图片

第二步,不断实现功能,做成一个个新版本。

github客户端与git使用指南_第11张图片

第三步,发起”拉取请求“( Pull Request ),后面简称 PR 吧。

将完成的新分支push到github上,然后拉起请求

拉起请求后,可以查看新分支相对于master详细的修改信息

github客户端与git使用指南_第12张图片

github客户端与git使用指南_第13张图片

第四步,大家讨论。这是一个代码审核的过程。

github客户端与git使用指南_第14张图片

第五步,部署代码。

github客户端与git使用指南_第15张图片

第六步,把分支的内容合并到 master 。

github客户端与git使用指南_第16张图片

github客户端与git使用指南_第17张图片

这就是整个 Github Flow 的几个步骤了。

5. 贡献开源项目流程

基于 fork 的整个的流程就是上图展示的思路。第一步,先 fork,这样我就有了 happypeter/TLCL 这个仓库了,既然是属于自己的仓库,我就可以把它 clone 到本地,做修改,然后推送到回这个仓库之中。这样我把我自己的仓库(或者说 fork )跟上游的仓库( billie66 名下的仓库)来进行对比,就可以发 Pull Request 了,最后项目的协作者来决定是否merge。

github客户端与git使用指南_第18张图片

如果只是要改一个很小的地方,可以直接在github网页版上,打开这个项目的某个文件,然后直接编辑。

github客户端与git使用指南_第19张图片

6. 额外的功能

Github 上的每个项目仓库,都有三套基础设置可供使用:一个是通过 Github Pages 机制建立项目网站,后面会介绍的。另外一个就是每个项目都可以开自己的 wiki ,作为项目的知识库。第三个就是咱们今天的主角,事务卡片( Issues )。很多比较复杂的项目管理软件会把“报 Bug ”,“提新需求”,“其他讨论”,这些项目相关的内容分成不同的板块来进行,在 Github 这里,所有的内容就都作为事务卡片来统一管理了。

(1)issues

issues与pull request区别: pull request是修改代码后引发的讨论,而issues一般是先有讨论,再配合解释或修改代码。

commit 版本时,描述加上issues号,push之后,就会出现在issuues的记录里。(前提是必须在master分支上)

github客户端与git使用指南_第20张图片

这样写,会关闭编号为2的事务卡片。

(2)GitHub Pages 搭建网站

四、git服务器搭建

Github 公开的项目是免费的,但是如果你不想让其他人看到你的项目就需要收费。这时我们就需要自己搭建一台Git服务器作为私有仓库使用。

两者的教程基本一致

以 Centos 为例搭建 Git 服务器: https://www.runoob.com/git/git-server.html

以 ubuntu为例搭建 Git 服务器:https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664

 

你可能感兴趣的:(github客户端与git使用指南)