基础命令

设置用户信息

1
2
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

查看用户信息

1
2
git config --global user.name
git config --global user.email

命令升级

创建.bashrc文件

1
touch ~/.bashrc

在其中输入

1
2
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
alias ll='ls -al'
1
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
  • 定义了一个别名 git-log,它代表了一个更复杂的 git log 命令
  • 这个别名的作用是显示一个压缩过的 Git 日志,使用单行输出,展示所有分支的提交历史,并且使用图形化的方式显示分支和合并情况。具体的参数解释如下:
    • --pretty=oneline: 每个提交显示在一行
    • --all: 显示所有引用,包括分支、标签等
    • --graph: 用 ASCII 图形显示提交历史的分支结构
    • --abbrev-commit: 使用简短的提交哈希(而不是完整的哈希值)
1
alias ll='ls -al'
  • 定义了一个别名 ll,它代表了 ls -al 命令
  • 这个别名的作用是列出当前目录中的所有文件(包括隐藏文件),并显示详细的文件信息(权限、所有者、文件大小、修改时间等)

基础操作指令

1
2
3
4
5
6
7
8
9
git add . (提交所有)

git commit -m *"add file01"* (描述,注释的作用)

git log [option]
--all 显示所有分支
--pretty=online 将提交信息显示为一行
--abbrev-commit 使得输出的commitld更简短
--graph 以图的形式显示

查看文件状态

1
git status

说明

  • 用于显示当前 Git 仓库的状态,特别是工作目录和暂存区中的文件的状态。它可以告诉你哪些文件被修改了、哪些文件被暂存(staged)准备提交、哪些文件未被跟踪(untracked),以及哪些文件有冲突

常见的输出信息

  • Changes to be committed: 暂存区中的文件,这些文件已经准备好被提交
  • Changes not staged for commit: 被修改但还没有加入暂存区的文件
  • Untracked files: 未被 Git 跟踪的新文件

版本回退

Git恢复之前版本的两种方法reset、revert(图文详解)_git回退到某个版本

将多条commit合并

1
git log
  • 查看想要合并的记录
  • 例如: fix:修复了一个bug (最新),feat(Controller):开发了个人信息接口。假设你想要把第一个commit合并到第二个中
1
git rebase -i HEAD~2
  • 执行命令后

    • Git 会在文本编辑器中列出最近的两次提交,每一行显示一个提交以及它的操作选项,通常是 pick,表示保留这个提交
  • 可选择的操作

    • pick:保留该提交(默认操作)
    • reword:保留提交但修改提交信息
    • edit:停止在这个提交点,以便你可以在此基础上进行修改
    • squash:将该提交与前一个提交合并,并使用前一个提交的信息
    • fixup:将该提交与前一个提交合并,但会丢弃该提交的信息
    • drop:删除该提交
1
2
3
4
5
6
7
8
9
10
11
12
在最上面会出现这两行
pick 7f49a9e feat(Controller):开发了个人信息接口
pick 1dcbb63 fix:修复了一个bug
把你想要合并的commit的pick改为s或squash,即
pick 7f49a9e feat(Controller):开发了个人信息接口
s 1dcbb63 fix:修复了一个bug
保存退出
在接下来的编辑器中将被合并的记录删除,即:fix:修复了一个bug
保存退出
如果出现冲突,则需要解决;如果出现Successfully rebased and updated ,则没有冲突出现
最后使用git push --force命令将代码强行push到远程仓库
可以使用git log查看是否成功合并

.gitignore

该文件用于指定哪些文件或目录应该被 Git 忽略,不被纳入版本控制中

1
touch .gitignore

example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.DS_Store
.idea
__debug_bin
!*.example
/config.yaml
*.log
/.vscode
/.env
/.envrc
/release
/data
/custom
/.custom
/run.sh
cacert.pem

分支

命令

1
git branch
  • 显示当前所有的分支列表,并标记出当前所在的分支(通常用 * 标记)
  • 这条命令可以让你查看有哪些分支存在,以及你当前所在的分支
1
git branch <名字>
  • 创建一个新的分支,但不会自动切换到新分支
  • 例如,git branch feature 会创建一个名为 feature 的新分支,但你仍然留在当前分支上
1
git checkout <名字>
  • 切换到指定的分支
  • 例如,git checkout feature 会切换到 feature 分支,使得该分支成为当前操作的分支
1
git checkout -b <名字>
  • 创建一个新分支并立即切换到该分支,相当于 git branch <名字>git checkout <名字> 的组合操作
  • 例如,git checkout -b feature 会创建一个名为 feature 的新分支,并自动切换到这个分支
1
git merge <名字>
  • 将指定分支的更改合并到当前分支
  • 例如,git merge feature 会将 feature 分支的更改合并到你当前所在的分支上。合并操作可能会引发冲突,需要手动解决后再提交。在合并完成后,默认会进入编辑器让你输入合并信息,通常用 :wq 退出编辑器
1
git branch -d <名字>
  • 删除指定的分支,但只有在该分支的更改已被合并到其他分支时,删除操作才会成功
  • 例如,git branch -d feature 会尝试删除 feature 分支,但如果 feature 分支上有未合并的更改,Git 会拒绝删除操作,除非你强制删除
1
git branch -D <名字>
  • 强制删除指定的分支,即使该分支上有未合并的更改
  • 例如,git branch -D feature 会强制删除 feature 分支,不管它是否已被合并或包含未合并的更改。此操作不可逆,需要谨慎使用

分支管理规范

大厂git分支管理规范

commit规范

commit规范

Github远程仓库与本地链接

github——git本地仓库建立与远程连接