社会化编程|使用Git工具在本地Git仓库、GitHub仓库间的交互

目录:

1 GitHub和Git

2 申请GitHub帐户

3 创建GitHub远程仓库(版本库)

4 下载和安装Git工具

5 设置username和email,因为github每次commit都会记录他们

6 创建磁盘目录,在目录中新建、编辑文档

7 将新建目录初始化本地Git仓库

8 配置本地Git仓库和GitHub仓库之间的SSH验证信息

9 添加远程仓库

10 本地磁盘目录中的文件(包括文件夹)加载到缓存

11 递交到本地Git仓库

12 push到远程GitHub仓库的分支

13 从远程GitHub仓库pull文件到本地

14 在本地修改从github上clone的仓库后上传到github

15 fork别人的github仓库后,clone到本地,修改后上传到github,然后提交Pull Request请求

16 断开本地Git库与远程GitHub库的连接

17 新建并处理提交到自己仓库的pull request

18 使用别人的项目发现bug或者遇到问题,可以去别人的仓库提问(Issue)

19 处理别人在自己仓库的提问

20 为自己的远程仓库创建Wiki

21 分支(branch)管理

22 发布管理

23 Gist管理

24 git对文件的操作

25 git常用命令

26 资料参考

1 GitHub和Git

GitHub 是一个在线平台,旨在促进在一个共同项目上工作的个人之间的代码托管、版本控制和协作。通过该平台,无论何时何地,都可以对项目进行操作(托管和审查代码,管理项目和与世界各地的其他开发者共同开发软件)。GitHub 平台为开源项目和私人项目都提供了项目处理功能。

GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.

Github是一个版本控制和项目合作的代码托管平台。它让你和其他任何地方的伙伴共同进行一个项目。

Git是分布式管理的版本控制器,它的特点是版本控制可以不依赖网络,对分支和合并有更好的支持。

Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。

Git工具是一个命令行工具,可用于操作本地Gig仓库及与远程GitHub仓库的交互。

Fork:将GitHub的某个特定仓库复制到自己的帐户下;

pull request:在GitHubh ,代码的修改与讨论以Issue和pull request的形式进行;

pull :从远程仓库上拉取分支上本地仓库;

push :从本地仓库推送文件或文件夹到远程仓库;

2 申请GitHub帐户

登录网站: http://github.com/

需要使用一个邮箱来申请GitHub帐户;

3 创建GitHub远程仓库(版本库)

一个版本库通常用来组织一个单独的项目。库中包含文件夹和文件、图像、视频、电子表格和数据集,任何你的项目需要的东西。

3.1 右上角点击加号+图标,然后选择new repository

3.2 给你的版本库命名为textProcessing

3.3 写一个简短的介绍

默认情况下你的版本库有一个名为master的分支,他被认为是最终的分支。

在上述版本库可,可以新建文件、也可以上传文件,也可以从本地Gig库push文件至此。

一般情况下,一个帐户允许建立任意个GigHub提供的Git仓库,且公有仓库是免费的。

4 下载和安装Git工具

下载地址:

https://git-scm.com/downloads

根据操作系统进行选择,windows版本的安装副本大概40M左右。

git bash界面如下:

符号$是命令提示符。

5 设置username和email,因为github每次commit都会记录他们

$ git config --global user.name "wwuhn"

$ git config --global user.email "wwuhnwu@163.com"

上面的两个命令执行完后,会在本地帐户下创建.gitconfig文件,并包含帐户名和邮箱地址。

6 创建磁盘目录,在目录中新建、编辑文档

如新建以下目录:

D:\Users\wwuhnwu01\textProcessing

可以直接使用命令:

$ mkdir textProcessing

7 将新建目录初始化本地Git仓库

需要将shell的当前目录切换到textProcessing(可以是新建的或已经存在的)下:

$ cd textProcessing

$ git init

git init是将git shell的当前目录初始化为本地Git仓库。

8 配置本地Git仓库和GitHub仓库之间的SSH验证信息

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:

使用以下命令生成SSH Key:

$ ssh-keygen -t rsa -C "wwuhnwu@163.com"

之后一直按“Enter”就行了,秘钥会生成在默认目录(当前用户目录下面的.ssh目录下面):

比如我的秘钥生成在D:\Users\wwuhnwu01\.ssh目录下面。

我们看到.ssh目录下面有三个文件,id_rsa,id_rsa.pub,known_hosts。打开id_rsa.pub,复制。

打开我们的github,进入设置页面,粘贴SSH密钥到下列的Key文本框:

$ ssh -T git@github.com(验证本地创建ssh key是否成功)

9 添加远程仓库

命令格式:

$ git remote add [shortname] [url]

如:

$ git remote add origin git@github.com:wwuhm/textProcessing.git

可以使用git remote -v命令查看远程仓库。

10 本地磁盘目录中的文件(包括文件夹)加载到缓存

将所有文件添加缓存(在index数据结构中记录文件提交之前的状态):

$ git add .

(注意上面的命令使用了通配符:英文句点.)

11 递交到本地Git仓库

$ git commit -m "提交文件"

(双引号内是提交注释)

git commit命令可以将当前缓存中的文件实际保存到仓库的历史记录中。

以上几个操作可随时git status查看本地git仓库中的基本情况。

12 push到远程GitHub仓库的分支

命令格式:git push 远程仓库别名所要上传到远程仓库的分支名

$ git push -u origin master

上面的命令执行完后,GitHub上的仓库就会被更新。

13 从远程GitHub仓库pull文件到本地

命令格式:git pull 远程仓库别名所要下载内容所在远程仓库的分支名

$ git pull origin master

14 在本地修改从github上clone的仓库后上传到github

从github上clone一个自己的仓库到本地:

$ git clone git@github.com:wwuhm/textProcessing.git

修改本地仓库中的文件,将所有修改的文件添加到暂存区中

# git add .

提交修改

$ git commit -m "提交说明"

将本地仓库修改的文件都上传到github仓库

$ git push origin master

15 fork别人的github仓库后,clone到本地,修改后上传到github,然后提交Pull Request请求

在github上fork一个别人的仓库到自己的github中,clone自己的该仓库到本地:

$ git clone 自己的github仓库(https或者SSH仓库)

修改本地仓库中的文件,将所有修改的文件添加到暂存区中

$ git add .

提交修改

$ git commit -m "提交说明"

将本地仓库修改的文件都上传到github仓库

$ git push origin master

到自己github的该仓库页面来进行pull request请求

16 断开本地Git库与远程GitHub库的连接

命令格式:git remote rm 给远程仓库起的别名

$ git remote rm origin

17 新建并处理提交到自己仓库的pull request

Pull请求是github上协作的核心。开发者向GitHub的仓库推送更改或功能添加后,可以通过Pull Request功能向别人的仓库提出申请,请求对方合并。

17.1 新建、递交pull request

I 点击pull request标签,然后从pull request页点击绿色的new pull request按钮。

II 选择你的分支,然后和你的master分支做对照。

III 在对比页面看看你的更改,确保他们是你想提交的

IV 当你对这些提交的更改都满意时,请单击绿色create pull request按钮。

V 给你的pull请求一个标题,并对你的变化写一个简短的描述。

17.2 接收、处理pull request

I 点击绿色merge pull request按钮来合并更改到master

II 点击confirm merge

18 使用别人的项目发现bug或者遇到问题,可以去别人的仓库提问(Issue)

Issue功能,是将一个任务或问题分配给一个Issue进行追踪和管理的功能。每一个功能更改或修正都对应一个Issue,讨论或修正都以这个Issue为中心进行。在GitHub上,一个Pull Request也会同时创建一个Issue。

发现别人的项目有bug,或者自己有问题,可以发起提问(Issue)。

19 处理别人在自己仓库的提问

可以打开Issue选项卡,处理其中列出的问题。

20 为自己的远程仓库创建Wiki

通过Wiki功能,任何人都能随时对一篇文章进行更改并保存,因此可以多人共同完成一个页面。该功能常用在开发文档或手册的编写中。

可以在Wiki选项卡中以Markdown编辑模式新建和修改页面(page)。

21 分支(branch)管理

你曾经保存过不同版本的文件吗?像这样的:

Story.txt

Story-joe-edit.txt

Story-joe-edit-reviewed.txt

在github版本库里,分支完成里类似的需求。

在github上,我们的开发人员,作者,和设计师使用分支修复bug并且使功能从master分支分离。当修改完成后再合并到master分支上。

$ git branch(查看当前分支)

$ git merge branchName(用于合并指定分支到当前分支)

$ git branch -d dev(删除dev分支)

$ git merge --no-ff -m "merge with no-ff" dev(--no-ff参数,表示禁用Fast forward)

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

将本地仓库分支push到远程仓库指定分支:

git push origin test_branch:test_branch

22 发布管理

Releases显示仓库的标签(Tag)列表。软件在版本升级时一般都会打标签,如果需要特定版本的文件,可以从这里寻找。

23 Gist管理

gist是用来即时分享代码,注释,和片段代码的。Gist功能主要用于管理及发布一些没必要保存在仓库中的代码,能够比较快捷地实现代码分享。

24 git对文件的操作

git对文件的操作都是在四大域上进行的(工作目录,暂存区,仓库,远程仓库),文件可以在四大域内与四大域间进行各种操作。(有一个例外,进行“git stash”系列操作时,文件可能被保存到四大域外的堆栈中)

25 git常用命令

git常用命令具体使用可参考:

https://github.com/lavor-zl/Github-Git/blob/master/Git%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B.md

26 资料参考

Git参考资料:https://git-scm.com/book/zh/v2

作者是Scott Chacon and Ben Straub ,其中Scott Chacon的github帐号:

https://github.com/schacon

虽然github是代码托管平台,但是,不是程序员也是可以使用的,工具嘛,看你怎么使用了,有点像瓶子一样,什么瓶子有时候也得看装什么东西,

一块合作写文档应该是一个不错的选择

可以做一些计划之类的事情,放上边自己监督自己也可以让别人监督自己

用GitHub搭建博客、个人网站或者公司官网,GitHub本身提供免费的托管服务,又提供了贴心的 Pages 功能,可以绑定你自己的域名,免费、高效、不限流量

个人简历,不管是面试还是招聘在上边都有个参考

可以进行项目管理除了仅仅开发密切联系的项目中(GitHub最初是为了开发的管理而生,当然也就具备了项目管理的潜质)

本页共181段,5761个字符,11660 Byte(字节)