• Git使用教程


    Git

    **一、**安装

    $git //查看是否安装git
    $git --version   //查看git版本
    
    • 1
    • 2

    Mac上可以使用homebrew来安装,安装完需要设置:

    $git config --global user.name "xujiaxin"
    $git config --global user.email "xujiaxin@beatosion.com"
    
    • 1
    • 2

    二、创建版本库

    $mkdir learngit 
    $cd learngit
    $pwd  //显示当前目录
    /Users/xujiaxin/learngit
    $git init  //此时ls -al 会发现有一个.git目录
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、新建一个文件

    $vim readme.md
    Git is a distributed version control system.
    Git is free software distributed under the GPL.
    
    • 1
    • 2
    • 3

    四、提交

    $git add readme.md
    $git commit -m "提交readme.md"
    $git log //查看历史提交的信息
    
    • 1
    • 2
    • 3

    五、版本回退

    $git reset --hard HEAD^  //退回上一个版本
    $git reflog   //查看每次退回的commit id
    d9656e9 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
    a118a37 HEAD@{1}: reset: moving to HEAD^
    7c975c7 HEAD@{2}: commit: dudu
    a118a37 HEAD@{3}: commit: append Gpl
    d9656e9 (HEAD -> master) HEAD@{4}: commit (initial): append Gpl
    $git reset --hard 7c975c7   //退回到commit:dudu
    HEAD 现在位于 7c975c7 dudu
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    六、工作区和缓存区

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Naw6uVV-1658822887001)(https://www.liaoxuefeng.com/files/attachments/919020037470528/0)]

    第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

    你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

    $git status //查看状态
    
    • 1

    七、撤销修改

    git  checkout -- readme.txt
    
    • 1

    命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    总之,就是让这个文件回到最近一次git commitgit add时的状态。

    八、删除文件

    $ git rm test.txt
    rm 'test.txt'
    
    $ git commit -m "remove test.txt"
    [master d46f35e] remove test.txt
     1 file changed, 1 deletion(-)
     delete mode 100644 test.txt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    九、远程仓库

    添加远程库

    1、首先需要把ssh密钥输入输入到github

    本地:

    $ssh-keygen -t rsa -C "xujiaxin@beatosion.com"  //一直回车
    $cd ~/.ssh
    $ls(查看目录是否有id_rsa.pub文件)
    查看公钥:cat id_rsa.pub    或者vim id_rsa.pub
    复制到github中即可
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、登陆github新建仓库

    3、

    $git remote add origin git@github.com:xujiaxindudu/learngit.git
    $git push -u origin master
    枚举对象中: 4, 完成.
    对象计数中: 100% (4/4), 完成.
    使用 8 个线程进行压缩
    压缩对象中: 100% (2/2), 完成.
    写入对象中: 100% (3/3), 265 字节 | 265.00 KiB/s, 完成.
    总共 3(差异 0),复用 0(差异 0),包复用 0
    To github.com:xujiaxindudu/learngit.git
       6ae5491..27023cb  master -> master
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    从现在起,只要本地作了提交,就可以通过命令:

    $ git push origin master
    
    • 1

    删除origin

    git remote rm origin
    
    • 1

    要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

    关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名;

    关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

    此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

    从远程库克隆

    $git clone git@github.com:xujiaxindudu/yiyi.git
    $ cd gitskills
    $ ls
    README.md
    
    • 1
    • 2
    • 3
    • 4

    要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

    Git支持多种协议,包括https,但ssh协议速度最快。

    十、分支管理

    $git checkout -b dev //创建并切换分支
    
    • 1

    git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'
    
    • 1
    • 2
    • 3
    $git branch
    * dev
      main
    
    • 1
    • 2
    • 3

    git branch命令会列出所有分支,当前分支前面会标一个*号。

  • 相关阅读:
    Bash基本功能—通配符和其他特殊符号
    10.25verilog复习,代码规范复盘,触发器复习
    树莓派和PC的串口通信编程
    【学习笔记】正则表达式及其在VS Code,Word中查找替换的应用
    【uniapp】利用Vuex实现购物车功能
    HTML5期末大作业:基于 html css js仿腾讯课堂首页
    [分布式算法] 生成树广播与敛播
    基于springboot+vue的药店管理系统
    MySql8.0 + Qt 对数据库操作 - 初窥篇1
    自然语言处理技术之词向量:GloVe单词表示的全局向量(glove.840B.300d、glove.6B)
  • 原文地址:https://blog.csdn.net/weixin_44961320/article/details/125997137