git高级使用

git平时使用,各个IDE都有图形化操作,只是创建、推送、拉取,很容易,没什么说的,但是,有时候会出现一些奇怪的问题,或者仓库越来越大,这时候一般是因为什么都不懂,就开始使用图形化界面造成的

初步认识git

git,一种版本管理、合作开发的工具,个人使用可以视为云备份,接下来全部以个人使用为例,不涉及团队协作,开发环境为 ubuntu2004vscode,云备份以 githubgitee 为例

好处,再也不怕论文被 女朋友 删除了,随便删,额,前提是女朋友不懂git或者只懂皮毛,没女朋友的没这烦恼 ~

什么时候需要用git

  • 使用 latex 写论文
  • 学习、开发python等项目,需要不断更新迭代
  • 记笔记,尤其是会不断翻看、修改的笔记

以上几种情况下,你可以随时找到任何时刻(提交记录)笔记,可以查看比较前后修改内容,可以多处云备份

git与github、gitee、gitlab关系

git只是一个版本管理工具,可以脱离后者,后者基本上相当于一个云备份,可以多人协助,也可以在线修改

从创建第一个项目开始

本地

如果你本地已经有项目 test 了,打开路径

1
cd test
  • 安装git

windows可以去官网,linux和mac我建议用源安装,mac可以 brew 百度怎么用,我这里 ubuntu 用的apt

1
sudo apt install git
  • 配置

    你的邮箱,用常用的,如果是开源项目,别人可能通过这个联系你

    1
    git config --global user.email "你的邮箱"
    1
    git config --global user.name "你的昵称名"
  • 初始化

    1
    git init

    这时候其实是在当前目录创建了一个 .git 文件夹,里面有些信息

    注意,要先创建忽略文件,再提交!

  • 忽略文件 .gitignore

    创建忽略文件的目的是,不要什么文件都记录历史,一些间接生成或者缓存文件,没必须,全部追踪会导致git项目越来越大

    比如用 latex 写论文,编译时,会产生很多文件,都没必要,甚至最后生成的pdf文件都可以不记录,因为凡是无法用 IDE 直接打开的,就无法增量追踪

    忽略文件即当前目录创建文件

    .gitignore,编写规则,可以直接是文件夹整个忽略,可以是某类型文件忽略

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 忽略test开头的所有文件夹或文件
    test*

    # 忽略mac系统产生的无意义文件
    .DS_Store

    # 忽略node的库文件
    node_modules/

    # 忽略python的缓存编译
    __pycache__/

    这个很多,不同类型项目有不同的忽略,比如在 gitee 上创建新项目时,可以选择编程语言,勾选 忽略文件,会自动创建适用于此语言的忽略文件,必须注意,初始化以后,一定要做好这个,不然后期比较麻烦

  • 提交

    分两步

    1
    git add .
    1
    git commit -m "提交说明,你做了什么,简洁一些"

    会自动记录时间,所以提交说明里不需要时间

vscode

其实上面初始化、提交、甚至查看历史记录,都可以用vscode处理,尤其是历史记录,vscode方便很多

  • 安装vscode

官方下载,国内可能比较慢

  • 安装扩展

    vscode扩展

    这几个必须安装

    第1个:编辑页面右上角,点时间那个小圆圈,可以查看提交历史

    git 历史

    第3个:可以看到整个项目提交情况,文件变化,包括分支

    git log

关联到云端

建议配置一下 github、gitee的ssh密钥,关联时,选择 ssh 那个url,以后就不用输入密码了

有空再写,先把命令放在这里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看目前关联了哪些
git remote -v

# 添加远程
git remote add-url origin 把我换成远程连接

# 修改连接
git remote set-url origin 把我换成远程连接

# 再加一个
git remote add-url origin1 把我换成远程连接

# 推送
git push

# 拉取
git pull

git高级命令

不到万不得已,不要乱玩下面的,平时会提交、推送、拉取就行

从某次提交(这次提交之前都属于这个分支)新建分支

1
git branch  master 96a99d1

后面那个id是 commit 以后生成的,平时输入前一两位,tab 快捷键就能补全了,我不知道这是不是和我配置的 oh-my-zshp10k 有关系

git tab

删除分支

1
git branch -D tmp

切换到某个分支

1
git checkout master 

切换到某次提交

1
git checkout 9dcc66c

合并分支,比如现在你在 master 分支,你想把 tmp 分支合并到 master

1
git merge tmp

本文作者:yuhldr
本文地址: https://yuhldr.github.io/posts/594541bc.html
版权声明:转载请注明出处!