Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库

这里写目录标题

  • 引言
  • 一、Git的基本原理
  • 二、如何在Linux中连接Github代码仓库
    • 1.安装git
    • 2.设置用户名和邮箱
    • 3.创建Github本地仓库
    • 4. 通过ssh密钥连接GitHub仓库
  • 三、Git的基本使用
    • 1.创建本地仓库
    • 2.拉取远程仓库代码
    • 3.修改远程仓库的代码
    • 4.向远程仓库提交代码
  • 四、Git常用命令

引言

在工作中用git命令提交代码办公是非常常用的,所以掌握git的基本原理以及使用方法是非常的重要的,接下来本文章将简单介绍git的原理以及git的基本使用方法,以便能够更好的上手使用。


一、Git的基本原理

git:一种管理文件的工具,是C/S模式的,一般都是在终端,往Github上提交。
Github:相当于是一个Git的服务平台,我们可以使用其提供的服务。这里面的文件是按仓库来划分的,可以认为一个仓库就是一个文件夹。
使用基本流程:一般提交代码就是先从工作区通过git命令提交到暂存区,然后再提交到本地仓库中,最后没问题了上传到远程仓库中。刚开始可以通过pull拉取远程仓库到本地,在本地仓库中有多个提交版本和对应的日志,可以通过日志ID来回退版本。
Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第1张图片


二、如何在Linux中连接Github代码仓库

1.安装git

  • 可以通过git version命令来判断是否安装了git
    在这里插入图片描述

  • 如果没有安装可以使用sudo apt install git命令来安装

2.设置用户名和邮箱

注意:第一次使用需要,以后就不需要了,把邮箱和姓名替换成自己的就行了,实际用处就是在提交代码时能够知道是谁提交的,让别人能够找到你。
git config --global user.email "YourEmail"
git config --global user.name "YourName"
在这里插入图片描述

3.创建Github本地仓库

  1. 登录GitHub账号,点击头像

Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第2张图片

  1. 点击Your repositories

Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第3张图片

  1. 点击New

Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第4张图片

  1. 起一个仓库名字,README文件可选可不选,最后创建即可

Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第5张图片

4. 通过ssh密钥连接GitHub仓库

原因:仓库可以公开看,但不能每个人都能上传代码到仓库中,并且git需要知道提交的远程仓库是哪一个,这个就需要ssh密钥来搞定了。

  1. 输入命令ssh-keygen -t rsa -C "YourEmail"生成ssh密钥文件,然后其余按回车就行了,不用输入。
    Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第6张图片
  2. 使用命令cat ~/.ssh/id_rsa.pub,查看自己的ssh key
    在这里插入图片描述
  3. 将其全部复制,在GitHub中按照如下操作,随便起个名字,然后将刚才复制的密钥粘贴到对应的地方,即可。
    Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第7张图片

Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第8张图片
Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第9张图片

Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第10张图片

Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第11张图片

  1. 最后在终端中输入ssh -T [email protected],出现如下即连接成功
    在这里插入图片描述

三、Git的基本使用

1.创建本地仓库

一般是创建一个文件夹,然后进去,输入命令git init将当前文件夹变为可以通过git管理的仓库,这个文件夹里面的区域就是我们的工作区.git里面存的是日志之类的东西。
Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第12张图片

2.拉取远程仓库代码

一般都是先从远程仓库中把代码拉取到工作区,然后我们在本地对其进行修改,然后通过git命令上传到远程仓库中。

  1. 这里我先在GitHub中写了一了C++程序用来模拟真实的情况,在GitHub上是可以直接上传文件、修改文件的,如下步骤:
    Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第13张图片
    最后把改写的一写就行了,最后提交。Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第14张图片
  2. 创建了一个C++文件用来模拟真实情况
    Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第15张图片
  3. 通过命令git clone ssh地址就可以把远程仓库中的代码拉取到工作区当中Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第16张图片
    Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第17张图片

3.修改远程仓库的代码

  1. 可以直接在本地把该文件中的代码修改
    Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第18张图片

  2. git add filename将文件暂存到缓存区

  3. git commit -m "注释"将暂存区的文件提交到本地仓库
    Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第19张图片
    可以用命令git status查看暂存区的情况Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第20张图片
    可以用命令:
    git log查看提交的版本记录
    git reflog查看操作日志
    Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第21张图片在这里插入图片描述

4.使用命令git push 将本地仓库的文件上传到远程仓库中Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第22张图片Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第23张图片
一般要是上传同一个文件会冲突的,有些文件git不知道怎么修改和合并,所以下一个人拉取文件时一般要修改文件一下,但只要文件名不一样就行了提交的时候。Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第24张图片

4.向远程仓库提交代码

这个跟上一个修改其实是一样的,熟悉一下命令:
git add filename:存入暂存区
git commit -m "注释":提交到本地仓库
git push / git push origin 分支名:push到远程仓库(因为测试只有一个分支,所以git push就够了)
Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第25张图片Linux学习系列(二十):在Linux系统中使用Git上传代码到GitHub仓库_第26张图片


四、Git常用命令

git init//使该目录变成git管理的仓库
    
git add filename//添加文件到暂存区
git commit -m "注释"//将暂存区的文件提交到本地仓库中
    
git status//查看仓库状态
git log//查看提交的版本记录
git reflog//查看对仓库的操作日志
    
git diff [HEAD/HEAD^^... /  版本号]//查看当前工作区的代码与最后一次版本(或者前几个版本)的比较,仅git diff默认为最后一次提交的版本
git checkout filename//把当前版本库中最新的代码覆盖当前的,放弃对工作区代码的修改,可以回退版本再覆盖
git reset --hard HEAD^//回退版本,多个^代表回退几个版本   
git reset --hard 版本号//这里也可以是版本号,用git log/reflog可以查看
git reset HEAD filename//从暂存区撤销
git rm filename 后git commit -m //先删除再把当前版本提交,就从版本库中删了,相当于提交了一份没有该文件的版本

git branch//查看分支
git branch 分支名//创建分支
git checkout 分支名//切换分支
git checkout -b 分支名//创建并切换到该分支
git branch -d 分支名//删除分支,不能删除当前所处分支,切换到其它分支再删除
git merge 分支名//合并某个分支到当前分支,合并时可能产生冲突,需要解决冲突,自己vim改代码就行了
git stash//保护现场,当前工作区有代码修改了,是不能切换到其他分支,可以先保存现场,再切换
git stash list//列出所有保存的现场信息 

ssh-keygen -t rsa -C "[email protected]"//生成通信密钥,生成的公钥在/home/stu/.ssh/下
    
//测试与github或者gitee(码云)有没有连通:
ssh -T [email protected]//测试github 的命令
ssh -T [email protected]//测试gitee 也就是码云的命令 
    
git clone 项目地址//克隆项目
//首先得把自己的仓库有东西,然后再拉取服务器最新的更新到本地,不然会提交失败
git pull origin 分支名//拉取远程服务器上的分支更新到本地,分支名不写默认master
git push -u origin 分支名//提交分支到远程仓库,并跟踪分支
git push origin 分支名//提交分支到远程仓库,如果改同一个文件,提交后,然后git不知道用哪个,都用,还是都不用,还是分别用哪个,所以提交到仓库中,别人看的时候,需要解决冲突,自己改代码


ssh -T [email protected]  //可以查看有没有联通
    
//然后就git clone 自己GitHub上的SSH,然后就正常输命令了
//git pull origin master
//git add filename
//git status     git log      git reflog
//git commit -m ""
//git push origin master

你可能感兴趣的:(Linux,linux,学习,github)