git

Git是分布式版本控制系统

初始化仓库

1
git init

Git添加文件需要add,commit一共两步

添加文件

1
git add readme.md # 把文件修改添加到暂存区

添加说明

1
git commit -m "first commit"

掌握仓库当前的状态

1
2
git status
git diff

版本控制

1
2
3
4
5
6
git log # 显示所有版本
git reset --hard HEAD^ # 回退到上一个版本
git reset --hard <版本号> # 回退到指定版本
git reflog # 查看所有命令与版本号
git checkout -- file # 回到和版本库一模一样的状态/回到添加到暂存区后的状态
git reset HEAD <file> # 把暂存区的修改撤销掉,重新放回工作区

总结

  • 场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout -- file
  • 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步:
    1. 用命令 git reset HEAD <file>,回到场景1。
    2. 按场景1操作。
  • 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

远程仓库

1
2
3
4
5
6
git remote add origin git@github.com:username/project.git # 本地仓库运行
git push -u origin master # 第一次推送
git push origin master # 之后推送
git remote -v # 查看远程库
git remote rm <name> # 删除远程库
git clone git@github.com:username/project.git # 克隆

分支管理

1
2
3
4
5
6
7
8
9
10
11
12
13
git checkout -b dev # 创建并切换分支
git branch # 查看分支,当前的有一个*
git checkout master # 切换分支
git branch dev # 创建分支
git merge <branch> # 合并分支
git branch -d dev # 删除分支,-D用于删除还没有合并过的分支
git status # 查看冲突文件
git merge --no-ff -m "merge with no-ff" dev # 这样可以保留原分支
git stash # 暂存工作区,进行其他活动
git stash list # 查看缓存
git stash pop # 恢复缓存,同时删除
git stash apply stash@{0} # 恢复缓存,不删除
git cherry-pick 4c805e2 # 将某个操作在当前分支实现

标签管理

1
2
3
4
git tag <name> # 在最新的commit上打标签
git tag v0.9 f52c633 # 指定commit打标签
git tag # 查看标签
git tag -d v0.1 # 删除标签

git
https://link0707-awesome.github.io/2024/10/30/git/
作者
Chenyu Liu
发布于
2024年10月30日
许可协议