git基础

创建版本库

初始化目录变成Git可以管理的仓库:

1
git init

把文件t1.txt添加到仓库:

1
git add t1.txt

把文件提交到仓库

1
git commit -m "说明注释"
  • 可以多次add,统一commit
  • Git命令必须在Git仓库目录内执行(git init除外),在仓库目录外执行是没有意义的。
  • 添加某个文件时,该文件必须在当前目录下存在,用ls或者dir命令查看当前目录的文件,看看文件是否存在,或者是否写错了文件名。

基础操作

查看仓库状态

1
git status

查看文件改动内容

1
git diff t1.txt

查看修改日志

1
git log

查看简单版修改日志

1
git log --pretty=oneline

在这里插入图片描述

前面十六进制数据表示的是commit id(版本号)

版本回退

HEAD表示当前版本,上一个版本是HEAD^,上上版本是HEAD^^,或者可以写为HEAD~2

版本回退可以用

1
git reset --hard HEAD^

返回到最新版本可以用

1
git reset --hard <版本号前几位(至少四位)或者版本标签>

如果不记得最新的版本号,可以用下面的命令查找历史中自己输入的命令

1
git reflog

撤销修改

  • 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令

    1
    git checkout -- file

    git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

  • 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令

    1
    git reset HEAD <file>

    ,就回到了场景1,第二步按场景1操作。

  • 已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除文件

  1. git rm t1.txt
    
    1
    2
    3

    2. ```
    git commit -m "delete t1.txt"

远程仓库

github配置公钥

  1. 创建SSH Key,在用户主目录下,找到.ssh目录(应该是隐藏目录)

    1
    ssh-keygen -t rsa -C "youremail@example.com"

    会生成id_rsa id_rsa.pub文件。其中id_rsa是私钥,自己保存;id_rsa.pub是公钥。

  2. 登陆github,打开“Account settings”,“SSH Keys”页面:然后点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。

添加远程库

创建新仓库
在这里插入图片描述

  1. 将本地仓库与远程仓库关联,远程仓库命名为origin

    1
    git remote add origin git@github.com:zhm-super/gitlearn.git
  2. 将本地仓库的内容推送到远程库上,加上-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,便于后续推送简化命令

    1
    git push -u origin master
  3. 后续修改可以通过下面的命令将本地master分支的最新修改推送至github

从远程库克隆

git clone <仓库地址>

1
git clone git@github.com:zhm-super/gitlearn.git

分支管理

创建与合并分支

查看分支

1
git branch

创建分支

1
git branch <name>

切换分支

1
git switch <name>    或     git checkout <name>

创建+切换分支

1
git switch -c <name>    或    git checkout -b <name>

合并某分支到当前分支

1
git merge <name>

删除分支

1
git branch -d <name>

远程推送和抓取

查看远程库

1
git remote

查看远程库详细信息

1
git remote -v

推送分支

将本地master分支推送到远程地址为origin的main分支

1
git push origin master:main

抓取分支

将地址为origin的远程main分支拉取到本地dev分支

1
git pull origin main:dev

有冲突时,需要用fetch拉取

1
git fetch origin main:dev

然后再用merge合并解决冲突

1
git merge dev

使用标签

打标签

1
git tag -a v1.0 -m "version 1.0"

列出标签

1
git tag

对之前的提交打标签

1
git tag -a v1.1 9e510e(版本号前几位)

查看标签的详细信息

1
git show v1.2

标签需要额外提交

1
2
3
git push origin <tagname>
或一次提交多个
git push origin --tags