目录
目的
记录一下学习的git命令
环境
Ubuntu 18.04 + VS code
每次使用命令都会结合VS code来看
基础命令
创建仓库
git init
查看当前仓库状态
git status
当什么也没修改时候
当我新加入两个文件时候
提示我工作区有新的未被跟踪的文件
对应于VS code的工作区
现在,我们把t1.cpp加入到暂存区,使用下面的命令
git add ./t1.cpp
git add 命令后面跟需要加入的文件夹
使用之后可以看下图,绿色代表已经放入暂存区
对应到VScode中的
如果需要取消该文件到暂存区点VScode中的 —— ,如下图中的红色框
该方法对应的git命令是
git reset
使用之后就是把t1.cpp 从暂存区撤销到工作区 VS code显示如下
提交代码到本地仓库
git commit -m "first"
对应到VScode中
这时候可以通过git status 看目前的仓库状态
已经有一个commit了
如果要把多个文件添加到暂存区,可以用通配符,比如把所有以.cpp结尾的文件加入到暂存区
git add *.cpp
把所有文件都添加到暂存区
git add .
查看提交记录
git log
可以看到每次提交的记录
git diff
查看简洁提交记录
git log --oneline
查看暂存区和工作区的差异
git diff
git diff
会比较工作目录中工作区与暂存区域中的内容之间的差异。
git diff HEAD
git diff HEAD
会比较工作目录中工作区与最新提交(即 HEAD 指向的提交)之间的差异
加上两个版本号能查看两个版本的差异
git diff 265d44f 1dd8704
查看当前版本和上一个已提交版本的不同
git diff HEAD~ HEAD
并且该命令后面可以跟上文件名,可以单独查看某个文件的不同
该命令也可以查看两个分支不同的差异
git diff branch1 branch2
删除文件并保存到暂存区
git rm t2.cpp
该命令也可以删除文件夹
可以建立一个.gitignore文件,在文件里面包含的文件或文件夹,每次git add 不会添加到暂存区
把本地代码推送到远端仓库
git push
把远端仓库拉取到本地
git pull
查看所有分支
git branch -a
涉及到多分支的在进阶命令会提到
进阶操作(包括多分支)
创建新分支
git branch t1
创建一个t1的分支
查看目前本地仓库的所有分支
git branch
上图中带*的分支是我们当前处于的分支
这样操作之后在远端仓库是没有更新本地仓库刚刚创建的分支的
切换分支
git checkout t1
如上图已经切换到t1分支
切换分支还有一个命令
git switch t1
git switch
是从 Git 2.23 版本开始引入的新命令,旨在提供更直观和安全的分支切换体验。
两者的区别
`git switch` 命令可以更好地保证分支操作的安全性,它会禁止在未提交的更改上切换分支(除非使用 `--discard-changes` 选项丢弃更改)。
而 `git checkout` 命令则可以在未提交的更改上创建新分支,这可能导致数据丢失等问题。
可查看该链接更新git版本
合并分支
在主线分支上输入命令
git merge t1
把t1分支合并到主线分支
分支删除
当一个分支的工作完成后,你可能希望将其删除。Git提供了删除分支的命令来实现这个功能。
git branch -d branchname
其中,branchname是你希望删除的分支的名称。注意,只有当该分支的修改已经合并到其他分支时,才能被安全地删除。如果分支的修改尚未合并,可以使用强制删除的命令:
git branch -D branchname
在远端仓库删除t1的分支
git push origin --delete t1
深度解析命令
git push命令的深度解析
git push <远程仓库名> <本地分支名>:<远程分支名>
一般来说把本地分支推送到远端同名分支使用
git push origin
git push
这两个命令是相同的功能
origin
是一个远程仓库的别名,通常情况下它是默认的远程仓库名称。在大多数情况下,远程仓库的名称被命名为 origin
,但这只是一个约定,可以选择不同的名称。
如果你想把本地的分支推送到远端仓库,但是远端仓库没有该分支,使用下面命令,也可以在t1后面加:加上新的分支名
git push origin t1
git push origin t1:t2
这样就会t1
分支推送到将本地的 远程仓库,并在远程仓库中创建一个名为 t1
的分支。如果远程仓库中不存在 t1
分支,Git 会自动创建该分支。
git pull命令的深度解析
git pull
命令用于从远程仓库获取最新的代码,并将其合并到当前所在的分支。它的基本语法是:
git pull <远程仓库名> <远程分支名>
要从远程仓库的 main
分支获取最新的代码并将其合并到当前分支(main可以换为自己需要拉取的分支),可以执行:
git pull origin main
从远程仓库的当前分支获取最新的代码,并将其合并到当前分支
git pull