一、开源项目贡献代码

1.fork项目代码

例如,我们想向tornado框架贡献代码,首先搜索tornado。

然后,将tornado的代码fork到我们的仓库中。

2.clone到本地进行开发

克隆自己仓库里的tornado到本地:

git clone https://github.com/leokale/tornado.git

修改找到的bug:

git checkout master
touch bug.py
git add .
git commit -m "修复了一个致命的bug"

3.推送修改好的代码到自己的仓库

执行命令:

git push origin master

4.向tornado作者申请pull request

申请pull request是和[工具] Git版本管理(三)(工作流)中一样:

申请提交后,原作者会收到该申请,并进行Code review,如果通过review。则会被合并到源代码中。

二、git的配置文件

1.当前项目下的配置文件

当我们执行完 git init后就会在项目目录下生成一个.git文件夹:

这个.git文件夹下面有个config文件:

这个配置文件,对应的是命令:

git config --local user.name "leo"
git config --local user.email "leo@xx.com"

我们使用以下命令也是默认放在本地配置的:

git remote add origin "https://xxxxx"

注意:项目下的config只对本项目生效,对其他项目不生效。

2.全局配置文件

除了每个项目有一个自己的配置文件,还存在一个全局的配置文件。

windows系统下,这个文件存在于:

也就是 " C:\Users\windows用户名 " 目录下。

全局配置文件对应命令:

git config --global user.name "leo"
git config --global user.email "leo@xx.com"

注意:全局配置文件对所有项目生效,如果项目自己的配置文件没有配置,git就会找全局配置文件。本地配置优先级高于全局配置。

3.系统配置文件

系统级别的配置文件是在git安装目录下的/etc/gitconfig。  

也就是目录:D:\Apps\Git\mingw64\etc\gitconfig,D:\Apps\Git是git的安装根目录。

系统配置文件对应命令:

git config --system user.name "leo"
git config --system user.email "leo@xx.com"

三、git免密登录

GIT提供了三种免密的方式。

1.在URL中体现

我们将账号密码串在git地址中,实现免密登录:

地址:https://github.com/leokale/dbhot.git
加上账号密码:https://用户名:密码@github.com/leokale/dbhot.git
git remote add origin https://用户名:密码@github.com/leokale/dbhot.git

2.使用SSH免密登录

使用SSH类似Linux下的免密登录,我们要先在本地计算机上创建公钥和私钥。

在Windows下:

  查看[c盘->用户->自己的用户名->.ssh]下是否有"id_rsa、id_rsa.pub"文件,如果没有需要手动生成,
打开Git Bash,在控制台中输入以下命令:
ssh-keygen -t rsa -C "youremail@example.com"

-C表示备注,可以写用作什么用途,如果不想写就直接ssh-keygen即可。

在Linux下:

  检查~/.ssh目录即可,生成ssh的方式也是

ssh-keygen -t rsa

生成ssh秘钥以后,将公钥的内容复制,并添加到github的配置中。

进入github的用户setting页面,选择SSH and GPG keys:
然后选择New SSH key进行添加:

添加完毕后,可以看到我们添加的公钥:

使用SSH的话,我们需要添加的仓库地址变为如下:

使用命令配置别名:

git remote add origin "git@github.com:leokale/dbhot.git"

使用这个地址的话,git就会使用SSH来进行验证了。

3.自动凭证管理

git目前提供了自动凭证管理的功能,我们在第一次push输入账号密码后,以后就没有提示让我们输入账号密码。

这是因为git帮我们自动管理起来了。

在windows下,我们进入凭据管理器:

然后可以看到git为我们保存的凭证:

如果删除后,下次登录就会需要重新输入账号密码。

四、gitignore文件

1.如何使用.gitignore文件

当我们在使用git管理文件的时候,一些文件或文件夹不需要被管理(例如Python虚拟环境文件、数据库文件等),则可以使用.gitignore文件来实现。

在项目中创建.gitignore文件(windows下):

  1.先创建gitignore.txt

  2.打开命令行,到gitignore.txt目录下输入ren gitignore.txt .gitignore,修改成功

在Linux下直接创建.gitignore文件即可。

在.gitignore中添加我们要忽略的文件名:

.idea/  # 忽略.idea文件夹的内容
venv/ # 忽略venv文件夹的内容
*.txt # 忽略以.txt结尾的文件
a.py # 忽略a.py
.gitignore # 忽略本身

我们在目录中添加README.txt文件,然后执行git status:

发现成功屏蔽了*.txt的文件。

除了直接写文件名、文件夹名等,还可以取反:

venv/
.idea/
!venv/a.py
*.txt
!README.txt

使用"!"表示例外(取反),!venv/a.py表示除了a.py,venv中的其他文件都被忽略。!README.txt表示除了README.txt,其他以.txt结尾的文件都被忽略。

2.使用推荐的gitignore

我们其实无需每次开发一个项目都自己手动去写.gitignore文件,而可以使用别人推荐的gitignore。

在github中搜索gitignore:

选择项目:

我们可以在该项目中找到适合我们的gitignore,例如:

C.gitignore
C++.gitignore
Java.gitignore
Python.gitignore
Qt.gitignore
CUDA.gitignore

五、用git进行任务管理

1.issues

在github中为我们提供了issues功能:

如果我们接手到一个项目,有问题或者发现BUG等,都可以在issues上提出。

然后,被指定的人员就可以看到这个issues:

在用户的issues中也可以看到有哪些issues,并可以过滤:

2.wiki

在我们github仓库中,应该对每个项目都写上wiki。

wiki中主要写对项目的介绍。用于其他同事或接受项目的人查看。

[工具] Git版本管理(四)(贡献开源代码、git配置、git免密、gitignore)的更多相关文章

  1. Windows平台上通过git下载github的开源代码

    常见指令整理: (1)检查ssh密钥是否已经存在.GitBash. 查看是否已经有了ssh密钥:cd ~/.ssh.示例中说明已经存在密钥 (2)生成公钥和私钥 $ ssh-keygen -t rsa ...

  2. 项目管理---git----快速使用git笔记(四)------远程项目代码的首次获取

    使用git最常见的场景是 你需要参与到一个项目中,而这个项目的代码,同事已经上传到github或者https://coding.net了. 这时候他会给你一个项目代码的远程仓库链接. 例如: http ...

  3. 版本管理·玩转git(远程仓库配置和配置公钥免密登录)

    git系列的最后一部分内容,我们先来看看如何查看远程仓库. 输入 git remote -v 我们还可以删除远程库,输入 git remote remove origin 删除后再次查询,信息为空. ...

  4. Git配置ssh免密登录

    一.在用户目录下的.ssh目录下生成秘钥与公钥 如果用户目录下没有.ssh目录,则需要新建一个 cd ~/.ssh ssh-keygen -t rsa 一路回车即可 注:国内很多博客都会带上-C &q ...

  5. git 配置SSH免密

    1.安装TortoiseGit(比较简单,直接在官网上下载安装包安装) 2.打开下图标识 点击 generate按钮 生成key(需要等一会)   3.生成Key保存成.ppk文件,记得存放路径,(建 ...

  6. Git for Windows之使用SSH协议开通公钥免密登陆功能

    1.删除Https的通信方式,建立SSH的通信方式 (1).查看当前的通信方式 当前是使用Https的方式与远程仓库进行通信 (2).删除HTTPS的通信方式 ok,HTTPS通信方式已删除 (3). ...

  7. 抓到Dubbo异步调用的小BUG,再送你一个贡献开源代码的机会

    hello,大家好呀,我是小楼. 最近一个技术群有同学at我,问我是否熟悉Dubbo,这我熟啊~ 他说遇到了一个Dubbo异步调用的问题,怀疑是个BUG,提到BUG我可就不困了,说不定可以水,哦不.. ...

  8. [工具] Git版本管理(知识总结)

    对以下文档进行了简要总结,方面复习: [工具] Git版本管理(一)(基本操作) [工具] Git版本管理(二)(分支) [工具] Git版本管理(三)(工作流) [工具] Git版本管理(四)(贡献 ...

  9. git学习——<四>git版本管理

    一.git版本管理的优势 都说git比svn强大,强大在哪呢? 首先,从部署上说:svn.cvs都是集中式的,一台服务器上部署服务,所有客户端编写的代码都要提交到该服务器上.git是分布式的,所有人都 ...

随机推荐

  1. IoT SaaS加速器——助力阿尔茨海默病人护理

    场景介绍 阿尔茨海默病,是导致中老年人认知功能障碍的最常见疾病之一,是发生在老年期及老年前期的一种原发性退行性脑病.据估计,全世界痴呆症患者数量为4700万,到2030年将达到7500万人.痴呆症患者 ...

  2. @codechef - BUYLAND@ Buying Land

    目录 @desription@ @solution@ @accepted code@ @details@ @desription@ 给定一个 R * C 表示高度的矩阵 A,另一个 H * W 的矩阵 ...

  3. bzoj 4386: [POI2015]Wycieczki

    bzoj 4386: [POI2015]Wycieczki 这题什么素质,爆long long就算了,连int128都爆……最后还是用long double卡过的……而且可能是我本身自带大常数吧,T了 ...

  4. 20190527-JavaScriptの打怪升级旅行 { 语句 [ 声明 ,变量 ] }

    写在前面的乱七八糟:时间总是轻易地溜走,不留一丝念想,近一个月,倒是过得有点丧,从今天开始起,已经开始接触后台了,而JavaScript也只是大致有了个分类框架,那些细枝末节还有的补,任重道远,天将降 ...

  5. 分布式TensorFlow集群local server使用详解

    通过local server理解分布式TensorFlow集群的应用与实现. ​​简介 TensorFlow从0.8版本开始,支持分布式集群,并且自带了local server方便测试. Local ...

  6. [ Laravel 5.1 文档 ] 服务 —— 帮助函数

    http://laravelacademy.org/post/205.html 1.简介 Laravel自带了一系列PHP帮助函数,很多被框架自身使用,然而,如果你觉得方便的话也可以在应用中随心所欲的 ...

  7. div+css布局的好处

    改版的时候更方便,只需改动CSS文件 页面加载速度更快,结构清晰,页面简洁 表现与结构相分离 有利于SEO,排名更靠前

  8. Java反射机制(四):动态代理

    一.静态代理 在开始去学习反射实现的动态代理前,我们先需要了解代理设计模式,那何为代理呢? 代理模式: 为其他对象提供一种代理,以控制对这个对象的访问. 先看一张代理模式的结构图: 简单的理解代理设计 ...

  9. HTML--CSS样式表--基本概念(超链接的状态)

    样式表的基本概念 一.样式表的分类 1.内联样式表 和HTML联合显示,控制精确,但是可重用性差,冗余较多. 例:<p style="font-size:14px;"> ...

  10. ThinkPHP3.2版本安全更新

    近日我们收到了一个关于3.2版本的漏洞提醒,官方已经第一时间进行处理和更新.由于3.2版本已经过了官方的维护和安全更新周期,而且大量的开发者也进行了二次开发,因此不再发布新版,官方仅进行安全公告和修复 ...