没志青年
发布于 2026-02-06 / 42 阅读
0

Git 版本控制

基础概念

  • 工作区:就是项目的目录,没有任何版本记录的。

  • 暂存区:电脑本地的一个临时存储区域,提交候选区,并没有形成版本。

  • 版本库:本地的仓库,有版本号。

  • 远程仓库:Gitee服务器上的仓库,用于协同开发。

每一次 commit 都是一个完整的文件快照(快照是整个项目的一次完整状态)

远程仓库:

说明

命令

查看远程仓库

git remote -v

拉取

git pull

推送

git push

克隆

git clone

查看提交记录

git log

查看提交记录(简洁版)

git log --oneline --graph

分支

说明

命令

查看所有分支

git branch

创建分支

git branch 分支名

切换分支

git checkout 分支名

git switch 分支名

创建并切换

git checkout -b 分支名

git switch -c 分支名

删除分支

git branch -d 分支名

本地删除后需删除远程分支:git push origin --delete 分支名

强制删除分支

git branch -D 分支名

git push --set-upstream origin master

切换到哪个分支,git commit 就提交到哪。

新建的分支是本地的,远程仓库没有,需建立联系

git push -u origin 分支名
或者
git push --set-upstream origin 分支名

这个只需要第一次设置,后面直接 git push 就行了。

如果创建了一个文件,但是并没有 git add,那这个文件哪个分支都可见。因为你没add,那这个文件就是个普通的文件,不属于项目的文件。

切换分支,它是工作区都切换的,就比如在v1.0.0中新建了一个文件和修改了一些文件,这些和master没关系,切换到master后,文件也没改动,文件也没新建,互不干扰。

还有未提交的,切换分支时会提醒你。

任何 git add 过的文件的改动(删除、修改),必须先 commit 才能切换分支,否则报错提示你先 commit:

error: Your local changes to the following files would be overwritten by checkout:
        新建 文本文档.txt
Please commit your changes or stash them before you switch branches.
Aborting

换成 Master 仓库:

git switch master

提交可控制粒度。

提交某个文件:

git add spi.c
git commit -m "fix spi"

提交全部,所有改动的文件都会被提交

git add .

分支拷贝 master 代码

已经创建了分支

切换分支,然后拷贝。

git switch 分支
git merge master

需要手动解决冲突。

比如,保留当前分支的文件。

git checkout --ours README.md
git checkout --theirs README.md  保留master的

保留当前分支的所有文件。

git checkout --ours .

放弃此次 merge

git merge --abort

或者:

切换到分支后

git checkout master -- .
git commit -m "init"
git push --set-upstream origin 分支名

使用

git init
git remote add origin https://github.com/yourname/project.git
git remote set-url origin 新仓库地址
git push
git add .
git commmit
git clone
git config --global user.name '灰蓝天际' 
git config --global user.email 'infinitehz@yeah.net'

忽略文件、文件夹

目录的话结尾要加 /

代码合并

Git 最难的部分。