[使用教程] 在linux中使用git - Go语言中文社区

[使用教程] 在linux中使用git


安装git

安装官网教程安装即可。
linux:sudo apt-get install git

配置git账号:

  • 如果想为每个项目单独配置不同的git用户,在每个项目的主目录下执行:
    git config user.name "xxxxx"
    git config user.email "xxx@xxx"

  • 如果让当前电脑的所有git操作均使用同一个git账户:
    git config --global user.name "xxxxx"
    git config --global user.email "xxx@xxx"

  • 如果想让电脑记住github的账号密码:

    • 如果想为全局配置记住账户密码:
      git config --global credential.helper store

    • 如果想为每个单独项目配置记住账户密码:
      git config credential.helper store
      进行如上操作之后,会记住上次输入的账号密码,之后操作不再需要账号密码。

    • 删除已经记住的密码
      rm ~/.git-credentials

从github上clone一个仓库,修改并上传至原仓库的使用要点:

如果从零开发,最好的方式是先创建远程库,然后从远程库克隆。
(如果你想将本地的项目文件上传至github,可以参考下一节。)

从本地新建项目,上传至github

  • 首先新建文件夹创建一个新的仓库(repository):
    mkdir learngit
    cd learngit

  • 然后git仓库初始化:
    git init

  • 在文件夹中添加文件,比如:classification.cpp,然后可以添加文件到git仓库,分两步进行:

    • 用git add命令告诉git,将文件添加到仓库:
      git add classification.cpp

    • 用git commit命令告诉git,将文件提交到仓库:
      git commit -m "add a new file"
      其中-m后面的命令是对本次提交的说明。

      为啥添加过程不能用一条git commit命令来完成呢,这儿涉及一个工作区和暂存区的概念。工作区是电脑能看到的目录,比如learngit文件夹是一个工作区(如下图左所示)。在learngit文件夹有个隐藏目录.git,不属于工作区,而是git的版本库,版本库中重要的两部分是暂存区(下图中),和创建的第一个分区master(下图右)。
      在这里插入图片描述

    • 上面的两步所做的工作分别为:
      git add将文件修改添加到暂存区;
      git commit提交更改,即将暂存区的内容提交到当前分支;

      我们创建版本库时,git自动创建了master分支,git comit即将往master分支上提交更改。可以理解为需要提交的文件修改全部放到暂存区,然后一次性提交暂存区的修改。

  • 添加到远程仓库(github)
    git是分布式版本控制系统,同一个git仓库可以分布到不同的服务器上,可以是公司的git服务器或者github。下面以github为例,介绍怎样将本地git仓库添加到远程仓库。

    本地仓库和github的连接有两种方式:

    • HTTPS连接(比如地址为:https://github.com/username/repo_name.git);

      • 在github创建一个名为learngit的空的仓库(注意不要使用README.md初始化仓库,否则需要先下载README.md,然后才能上传。),然后将本地仓库与github仓库相关联并推送内容。包含下面两步:
        第一,输入下面命令:
        git remote add origin https://github.com/username/learngit.git
        其中,origin代表远程库,是git的默认叫法。
        第二,将本地库内容推送到远程库:
        git push -u origin master
        由于远程库是空的,第一次推送master分支时,加上了-u参数。
        git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
        这样,我们在github上得到了和本地仓库相同的仓库。

      • 之后再次修改本地仓库内容时,推送到远程github仓库,即可输入简化的命令:
        git push origin master

    • SSH连接(比如地址为:git@github.com:username/repo_name.git);
      SSH加密传输首先要有SSH key,生成过程包括:

      • 在本地创建ssh key
        ssh-keygen -t rsa -C "your_email@youremail.com"
        执行命令之后会要求确认路径和输入密码,我们这使用默认设置,一路回车就行。成功的话会在~/下生成.ssh文件夹,进去文件夹,用vim打开id_rsa.pub,复制里面的key。
        回到github上,进入 Account Settings(账户配置),左边选择SSH Keys -> Add SSH Key,title随便填,粘贴在你电脑上生成的key。
      • 验证是否成功,在git bash下输入
        ssh -T git@github.com
        如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github了。
        需要注意的是,github允许添加多个SSH Keys,假定我们有自己的笔记本和实验室/办公室的电脑,需要将每台电脑的key添加到github,然后可以使用每台电脑往github推送了。
      • 其余步骤与HTTPS中的一样,只需将链接改为git remote add origin git@github.com:username/learngit.git即可。
    • HTTPS连接与SSH连接的区别
      使用HTTPS连接的不同之处在于:其一,不需要SSH key;其二,上面第一条命令地址要改为HTTP地址,其他步骤相同。
      HTTPS连接因为不需要SSH key,步骤简单,是github推荐的连接方式。然而其缺点为速度比SSH连接方式慢。

参考链接

注意事项

我安装的时候有两个小问题:

github简明教程

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/clksjx/article/details/84242557
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-05-07 22:42:07
  • 阅读 ( 1441 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢