Git的使用学习

简介

Git是一个分布式版本控制系统(分布式指版本库储存在个人设备中,集中式的版本库位于中央服务器中,需要联网才能使用)。

安装使用流程

  • Linux上直接使用软件包管理器安装或者编译安装即可,windows上直接在官网下载安装程序即可。

  • 命令行输入

    1
    2
    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
  • 创建版本库

    *注意这里的操作是测试使用,如果想工作某个项目一般是先创建一个远程库,然后克隆至本地

    1. 创建一个目录

    2. git init即可将此目录变为可管理的仓库

      1
      $ git init [name]
    3. 将文件添加到仓库(在仓库目录中执行)

      1
      $ git add 文件名
    4. 用命令git commit告诉Git,把文件提交到仓库(-m命令为此次提交填写说明-m "xxx"

常用操作

  1. git status 查看仓库状态

  2. git diff <文件名> 查看修改区别

  3. 版本回退

    • 使用 git log 查看更新日志
    • 使用 git reset --hard <版本号> (版本号可以是commit id的前几位,也可以用HEAD、HEAD^、HEAD~n(往上n个版本))
    • gut reflog 查看每一次命令
  4. 撤销修改

    • git checkout -- <文件名> 使工作区的修改撤回至暂存区/(如果暂存区没有)版本库。(工作区是指你修改文件的地方,使用git add后修改被传至暂存区,使用git commit后修改被传至版本库)(应用于修改了还没add)
    • git restore <file> 将文件的修改撤销至暂存区,并清空暂存区(应用于修改了还没add且上一次add还没commit)
    • git restore --satge <file> 将暂存区清空但不修改工作区修改(应用于add了还没commit)暂存区<–工作区
    • git reset HEAD <file> 将暂存区的修改撤销至版本库(应用于add了还没commit)暂存区<–版本库
  5. 删除文件

    • 删除工作区文件后继续删除版本库中文件

      git rm <file> then git commit -m <message>

    • 删除工作区后恢复

      1
      $ git checkout -- test.txt

远程仓库

有两种选择

  1. 搭建一个个人的Git服务器,这种服务器别人无法看见;
  2. 使用Github免费仓库,其他人可见。
关联至github远程仓库

需要使用SSH加密所有需要获取个人的私钥和公钥,若没有则

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

将本地仓库与远程仓库关联,在本地仓库中执行指令

1
$ git remote add origin git@github.com:用户名/远程库名.git

把本地库的所有内容推送到远程库

1
$ git push -u origin master

上述指令是将本地的分支master推送到远程仓库origin。-u是关联的参数。

删除远程库

git remote -v 查看远程库信息

git remote rm <name> 解除与远程库的绑定关系

git clone 克隆远程库
1
$ git clone git@github.com:用户名/远程库名.git

分支管理

创建并切换分支
1
2
$ git checkout -b dev 或者
$ git switch -c dev

或者

1
2
3
4
5
$ git branch dev
$ git checkout dev
或者
$ git branch dev
$ git switch master

使用 git branch 查看当前分支

合并分支

先切换回master分支

1
$ git merge dev

若是master和dev都修改过,则可能产生冲突,需要先消除冲突。

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

删除分支
1
$ git branch -d dev
保护现场
1
2
3
4
$ git stash
$ git stash apply//不删除stash内容恢复现场
$ git stash drop//删除stash内容
$ git stash pop//删除stash内容恢复现场
将相同的修改应用至别的分支
1
$ git cherry-pick <commit ID>
丢弃一个没有被合并过的分支

通过git branch -D <name>强行删除

标签

  • 切换到分支然后git tag <name>

  • 使用 git tag 查看所有标签

  • 给某次提交打标签 $ git tag <name> <commit ID>

  • 删除标签 git tag -d <name>

  • 推送某个标签到远程git push origin <tagname> 或者 git push oringin --tags

  • 从远程删除标签 $ git push origin :refs/tags/<name>


Git的使用学习
https://rainzz.cn/2025/03/14/Git的使用学习/
作者
rainzz
发布于
2025年3月14日
许可协议