• git的使用,看这一篇就够啦!(包含github、码云、gitlab)


    github这个代码仓库对于每个程序员都耳熟能详了,此外还有码云、gitlab等等。而要熟练运用这些代码仓库,掌握好git这个核心的分布式版本控制系统是最为关键的一步。本文将就git的原理以及实践操作来演示git的基本操作,帮助新手快速上手以及掌握git。

    什么是Git

    来源

    • Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
    • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
    • Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

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

    工作区:就是你在电脑里能看到的目录。
    暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
    版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。

    Git的基本操作

    Github代码仓库

    配置

    首先是设置用户名和邮箱作为一个标识,用户和邮箱为github注册的账号和邮箱

    $ git config --global user.name "ndmiao"
    $ git config --global user.email "ndmiao@126.com"
    

    其次是生成 ssh key

    $ ssh-keygen -t rsa -C "ndmiao@126.com"
    
    1. 是路径确认,直接按回车存默认路径即可
    2. 直接回车,无需密码登录
    3. 直接回车

    这时候cd ~/.ssh,ls如果有3个文件,则密钥已经生成,id_rsa.pub就是公钥。也可以打开我的电脑C:\Users\specter.ssh 里面找到。然后点击github右上角的头像,点击setting,按照下图的顺序将id_rsa.pub的内容黏贴进去即可。

    这时候ssh测试一下应该就能连通了

    $ ssh -T git@github.com
    Hi ndmiao! You've successfully authenticated, but GitHub does not provide shell access.
    

    github创建仓库

    创建一个新的仓库,填入仓库名和描述

    第一次创建仓库的时候,会有简单的推送提示

    创建本地仓库并推送

    第一个是git init命令,作用是在本地来初始化一个Git仓库,会生成一个.git目录,

    $ git init
    Initialized empty Git repository in D:/application/downloads/test/.git/
    

    然后在工作区随便创建几个文件

    # 将全部文件添加到缓存区, . 替换成具体文件可以添加具体文件
    git add .
    
    # 添加注释,并将文件提交到版本库
    git commit -m "first commit"
    
    # 将主分支变成main,git branch可以查看本地的分支。-d删除分支,后面加分支名,-a为本地和远程仓库,-r为本地仓库,-vv -a查询本地仓库+远程仓库+跟踪关系
    git branch -M main
    
    # 将远程仓库唯一的URL<url> 映射成为 在本地仓库中对远程仓库起的别名<shortname>即origin
    git remote add origin https://github.com/ndmiao/test.git
    
    # 将本地仓库推送到远程仓库,-u代表默认仓库。因为GitHub是国外服务器,所以可能推失败,多试几次。
    git push -u origin main
    
    # push失败可以试试检查环境变量
    env|grep -i proxy
    

    将github上的内容克隆到本地

    # 如果本地没有项目,可以采用 git clone,会把整个项目下载下来
    git clone https://github.com/ndmiao/test.git
    
    # 如果本地存在该仓库,则可以用 git pull 下载并合并代码。git pull <远程主机名> <远程分支名>:<本地分支名>例如git pull origin master:brantest。如果没有参数则默认。
    git pull
    

    创建分支,推送并合并

    # 首先需要在本地创建分支
    git branch ndmiao
    
    # 切换到该分支
    git checkout ndmiao
    
    # 可以用下方的命令直接实现上方两个命令
    git checkout -b ndmiao
    
    # 这时候git branch查看分支,即可发现多了一个ndmiao的分支
    git branch
    
    # 要想合并分支有两种选择,一个是本地先合并,一个上传后合并
    
    # 本地合并,然后再add、commit、push即可
    git merge ndmiao
    
    # 上传到远程分支,然后合并
    git add .
    git commit -m "add ***"
    git push origin ndmiao
    

    这时候会发现github上多了一个ndmiao的分支

    点击Compare & pull request,然后点击create pull request即可。

    点击Merge pull request,然后点击Confirm merge

    如果需要删除分支,可以点击Delete branch

    码云代码仓库

    第一步就是将公钥添加到码云中,路径为设置->SSH公钥->添加公钥

    # 因为码云的主节点还是master,所以要创建一个master节点
    git checkout -b master
    
    git add .
    git commit -m "my first commit"
    
    # 将远程gitee仓库唯一的URL<url> 映射成为 在本地仓库中对远程仓库起的别名<shortname>即gitee
    git remote add gitee git@gitee.com:ndmiao/test.git
    
    # 然后push到gitee的master就可以了
    git push gitee master
    

    GitLab代码仓库

    第一步就是将公钥添加到GitLab中,路径为preferences->SSH Keys->Add key

    # 因为GitLab的主节点还是master,所以要创建一个master节点,码云那一步做了就不用创建
    git checkout -b master
    
    git add .
    git commit -m "my first commit"
    
    # 将远程gitee仓库唯一的URL<url> 映射成为 在本地仓库中对远程仓库起的别名<shortname>即gitlab
    git remote add gitlab ssh://git@69.231.150.96:222/root/test.git
    
    # 然后push到gitlab的master就可以了
    git push gitlab master
    

    相信经过以上的实践,读者已经能够掌握最基本的git的push、pull、add、commit等命令了,足够日常的使用了。如果想要了解更加多的git操作,比如版本回退、文件比较等等,可以参考该教程https://www.runoob.com/git/git-tutorial.html


    GitHub @ndmiao  · 
    BiliBili @南岛鹋  · 
    知乎 @南岛鹋  · 
    CSDN @南岛鹋  · 
    博客园 @南岛鹋  · 
    个人站点 @南岛鹋

    打赏

    支付宝 微信
  • 相关阅读:
    转自一位前辈的杂谈
    在vim编辑器中实现python的tab补全
    Go语言 异常panic和恢复recover用法
    go语言的cron包的简单使用
    go语言的指针
    Python 报 OpenSSL.SSL.SysCallError: (10054, 'WSAECONNRESET')
    python 之图像处理
    git 线上连接及版本控制
    vue依赖pycharm启动
    模拟django 后台管理
  • 原文地址:https://www.cnblogs.com/ndmiao/p/14801379.html
Copyright © 2020-2023  润新知