复习git的使用

复习git的使用

最近公司的老旧项目要由svn转到git,git 命令大都忘记了,这里复习总结一下。

基础

查看本地git版本

git --version

查看本地git配置信息

git config --list

设置配置信息

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

提交文件

如果没有分支合并什么的操作的话,使用git提交一个文件的大概步骤:

1.查看状态

git status

2.将修改添加到暂存区
添加需要提交的修改。git add .是全部添加,这个不建议直接使用

git add 文件目录 / git add .

3.提交到本地仓库

git commit -m "描述文本"

4.将本地仓库代码更新到最新

git pull

5.将本地修改推送到远程仓库

git push

注:提交之前先同步本地仓库;更新之后有冲突的话先修改冲突。

查看

查看最近几次的提交记录

git log

git reflog
git log --pretty=oneline

查看某个文件详细的提交记录

git log -p README.md

回退

git reset --hard commitId

注意使用前先将本地修改add 和 commit 都本地仓库,否则一回退,再回来,本地修改就没了。

git revert

特别注意:如果不熟悉尽量不要使用git revert 和 reset,使用前必须想好自己要做什么,是要撤销?删除?还是只是回退查看。

使用场景举例:

如果已经有A -> B -> C,想回到B:

方法一:reset到B,丢失C:

A -> B

如果 C 是提交错了,要删掉,可以使用reset命令回退之后再推送到远程。

方法二:revert提交一个反向回退,变成B:

A -> B -> C -> B

C还在,但是两个B是重复的

如果C就是修改,现在又要改回来,将来可能再改成C,那你就revert

如果不小心将密码啥的提交到远程了,要删除修改,如果此条修改是在第一条,那直接reset后重新push上去就行,如果不是在第一条,这样做的话会将这条之后的修改都丢失了?如果有一个指针直接到某条commit id,然后修改,提交到当前的commit上就更好了,我暂时不清楚有没有这样的功能。

撤销修改

git checkout -- readme.txt

有两种情况,一是还没添加到暂存区,撤销之后本地修改就没了;二是如果已添加到了暂存区,再撤销的话撤销修改就回到添加到暂存区后的状态。

注意:这里的“–” ,如果不加 “–” 的话就成了切换分支的命令。

或者使用 git restore
git restore readme.txt

工作区做了修改,并未添加到暂存区,想撤销工作区的修改,用 git restore即可。
如果工作区的修改已经add到了暂存区,需要将暂存区和工作区的修改都撤销

git restore --staged readme.txt
git restore readme.txt

从暂存区恢复工作区,
git restore --worktree readme.txt

从master恢复暂存区
git restore --staged readme.txt

分支

创建

git branch dev //创建一个dev分支
git checkout dev //切换到dev分支
git push origin dev //将本地dev分支推送到远程


git checkout -b dev // 创建dev分支并切换至dev分支
git push origin dev //将本地dev分支推送到远程

git checkout -b dev 相当于 git branch dev 然后 git checkout dev
推送到远程后,远程就会有一个origin/dev的分支。

如果远程已有dev分支,则基于远程dev分支创建本地dev分支:

git checkout -b dev origin/dev

git branch -d dev // 删除本地分支
git branch -D // 强制删除分支

切换

git checkout 分支名 / git switch 分支名

建议使用 switch 命令,是最新的命令

tag

git tag v1.0 打本地tag

git push origin v1.0 将本地tag推到远程

git push origin --tags 将本地所有tag推至远程

git tag -d v1.0 删除本地tag,删除后要删除远程,也需要push origin

其他命令

显示当前目录
pwd + 回车

创建文件/文件夹
touch readme.txt

查看文件内容
cat 文件名

HEAD 指针 的理解

HEAD 指针指向当前的版本分支,所以在不同的版本之间切换,实际上是改变 HEAD 指针的指向,所以在不同版本之间切换会很快。

猜你喜欢

转载自blog.csdn.net/Morris_/article/details/129180662