zoukankan      html  css  js  c++  java
  • [工具] Git版本管理(四)(贡献开源代码、git配置、git免密、gitignore)

    一、开源项目贡献代码

    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:Userswindows用户名 " 目录下。

    全局配置文件对应命令:

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

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

    3.系统配置文件

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

    也就是目录:D:AppsGitmingw64etcgitconfig,D:AppsGit是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中主要写对项目的介绍。用于其他同事或接受项目的人查看。

  • 相关阅读:
    LOJ #6008. 「网络流 24 题」餐巾计划
    P2144 [FJOI2007]轮状病毒
    随记
    1010: [HNOI2008]玩具装箱toy(斜率优化)
    HDU 3507 Print Article(斜率优化)
    4819: [Sdoi2017]新生舞会(分数规划)
    POJ 2976 Dropping tests(01分数规划)
    spoj 104 Highways(Matrix-tree定理)
    dp专练
    4152: [AMPPZ2014]The Captain
  • 原文地址:https://www.cnblogs.com/leokale-zz/p/12130131.html
Copyright © 2011-2022 走看看