【Linux基础三】Git安装&使用,远程仓库GitHub

什么是Git?

  • Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
  • Git是目前世界上最先进的分布式版本控制系统 .

简史

林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds, 1969年~ )在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。

在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!

Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了 !

Git对比SVN

  • 集中式版本控制系统(svn)

    版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

    缺点:

    1. 集中式版本控制系统最大的毛病就是必须联网才能工作

    2. 合并的时候冲突解决起来麻烦

    3. 版本控制系统安全性差(集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了 )

  • 分布式版本控制系统(git)
    分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

  • 注意:实际使用分布式版本控制系统的时候 ,版本控制系统通常也有一台充当“中央服务器”的电脑 。

Git安装&基本使用(在linux上安装git)

  • 安装
    sudo apt-get install git

  • 查看版本
    git --version

  • 个人信息配置
    git config --global user.mail “xxx@qq.com” (引号中是你的邮箱地址)
    git config --global user.name “James” (引号中是你想要展示的名字)

  • 在本地电脑搭建git仓库&基本使用

  1. 选择一个合适的地方创建一个空目录“gitdemodir”

     mkdir gitdemodir
    
  2. cd进入该目录,通过 git init 命令把这个目录变成git可以管理的仓库

     cd gitdemodir
     git init
    
  3. 创建一个文件,demo1.txt,例如:

     echo "hello world!" > demo1.txt
    
  4. 使用git add将文件添加到仓库

     git add demo1.txt
    
  5. 使用命令git commit将文件提交到仓库

     git commit -m "add hello"
     # “ -m "后面表示的是本次提交的时候的说明,为了以后方便找到改动记录
     # 注意:我们可以一次性提交多个文件
    
  6. 撤销修改

     git checkout --demo1.txt
    
  7. 从版本库中直接删除该文件

     git rm demo1.txt
    
  8. 查看暂存区文件(是否有冲突)

     git status
    
  9. 查看操作日志

     git log
     # 可以加参数将信息打印在一行
     git log --pretty=oneline
    

    在这里插入图片描述
    注意:在这里会显示类似1093ab…之类的是commit id(版本号),每提交一个版本则会生成一个版本号【版本号都不相同】

  10. 回退到上一个版本

    # 修改指针,将指针指向上一个
    git reset --hard HEAD^
    
  11. 也可以回退到指定版本

    # 类似1093ab...之类的是commit id(版本号)
    git reset -- hard 1093ab
    
  12. 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

    git relog
    

    在这里插入图片描述

Git 工作区、暂存区和版本库

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区
    • 英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
    • 在版本库中存放了很多东西,其中最重要的就是成为stage(index) 的暂存区。还有git给我创建的一个master分支,以及指向master的指针head
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
    在这里插入图片描述
    在这里插入图片描述

Git标签管理

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

  1. 查看分支

     git branch
    
  2. 切换到你想要打标签的分支

     # 切换到master分支
     git checkout master
     # 另外附上"创建并切换分支"方法
     git checkout -b fenzhi1
    
  3. 在当前分支打一个新标签

     git tag v1.0
    
  4. 对指定的commit id 打标签

     git tag v0.9 f52c633
    
  5. 查看所有标签,会显示自定义的版本号,例如:v0.9

     git tag
    
  6. 还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

     git tag -a v0.1 -m "version 0.1 released" 1094adb
    
  7. 用命令git show 可以看到说明文字:

     git show v0.1
    
  8. 如果标签打错了,也可以删除

     git tag -d v0.1
    
  9. 如果要推送某个标签到远程,使用命令git push origin :

     git push origin v1.0
    
  10. 一次性推送全部尚未推送到远程的本地标签:

    git push origin --tags
    

Git分支管理

在这里插入图片描述
分支管理策略,参考以下链接内容:
https://www.jianshu.com/p/7aa32a0d9717

  1. 创建分支

     # 创建并切换到分支dev
     git checkout -b dev
    
  2. 查看当前分支

     git branch
    
  3. 切换回master主分支

     git checkout master
    
  4. 把dev分支的工作成果合并到master分支上

     git merge dev
    
  5. 合并完成后,就可以放心地删除dev分支了

     git branch -d dev
    
  6. 使用git status也可以告诉我们冲突文件

     git status
    
  7. 注意:处理完冲突后要重新add和commit

  8. 推送分支:推送分支,就是把该分支上的所有本地提交推送到远程库

     # 将主分支推送至远程仓库
     git push origin master
     # 如果要推送其他分支,比如dev,就改成:
     git push origin dev
    

注意:不是一定要把本地所有分支往远程推送,取决项目

  1. 查看分支合并图

     git log --graph
    
  2. 查看日志(一行查看)

    git log --pretty=oneline 
    

远程仓库GitHub

配置

  1. 首先注册GitHub账号
    https://github.com/

  2. Linux下安装ssh:

     sudo apt install openssh-server
    
  3. 创建ssh key:

     ssh-keygen -t rsa -C "xxx@qq.com"
    

    一路回车即可,顺利的话则会在.ssh目录中生成两个文件,id_rsa与id_rsa.pub这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
    (该步骤是为了获取本地公钥id_rsa.pub)

  4. 登陆githup,打开account settings,“ssh keys页面”:然后点击“add ssh key”,填上任意的title,在key的文本框中粘贴id_rsa.pub文件的内容。然后点击add key,就可以看到已经添加的key。

添加远程仓库

  1. 登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库.

  2. 根据GitHub的提示,在本地的gitdemo仓库下运行命令:

     git remote add origin git@github.com:userName/gitdemo.git
     # userName是你的GitHub账户
    
  3. 把本地库的所有内容推送到远程库上

     git push -u origin master
    

    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

  4. 以后提交远程只需要:

     git push origin master
    
  5. 从远程仓库克隆

     git clone git@github.com:userName/gitdemo.git
    
  6. 远程拉取,保持同步

     git pull origin master
    

私人仓

  • 为什么要私人仓?
    因为公共仓是所有人都能访问,如果你的项目不想共享给所有人,就选择建立私有仓
    在这里插入图片描述

  • 自从GitHub被微软收购之后,允许用户开设不限个数的免费私人仓,但是协作人只能添加3个,加上自己一共4人。
    在这里插入图片描述
    https://github.blog/2019-01-07-new-year-new-github/

  • 可以在私人仓中添加3名协作者(Collaborators)
    在这里插入图片描述

    1. 登陆GitHub创建一个代码仓项目

    2. 在输入框输入对方的GitHub名字或者注册邮箱

    3. 添加后把邀请链接发给对方

    4. 对方(协作者)同意后,可以在其setting -> Repositories最底部看到这个仓库。在github首页是看不到的

window下操作

参考:
https://blog.csdn.net/Ryan_lee9410/article/details/81014981

参考2:Git安装和使用
https://www.cnblogs.com/ximiaomiao/p/7140456.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值