Git实用命令集合

一、基础

git clone 克隆远程分支

git clone http://192.168.0.45/spade2/spade.git 拉取远程分支在spade目录

git clone http://192.168.0.45/spade2/spade.git spadeV2 拉取远程分支在spadeV2目录

git pull 从远程仓库下载更新内容

git add . 添加所有文件到暂存区

git commit -m "feat: bug修改" 提交暂存区中的修改到本地仓库

git commit -am "feat: bug修改" 提交代码到本地仓库

约等同于
git add git commit 命令组合添加到暂存区并提交到本地仓库。但该命令不会提交未进入版本管理的的文件。 未进入版本管理的新文件必须通过 git add 命令添加在暂存区才能提交。

git push 约等于推送当前本地分支到远程分支

以上大概能处理到一个简单的拉取、修改、提交本地仓库、推送远程的流程。

二、撤销本地代码修改

1、还未将变更加入到暂存区,即未执行 git add 命令前,可以使用 git checkout 命令来撤销修改,命令如下

git checkout -- <file>

比如:

git checkout -- *.txt

git checkout -- a.txt

也可使用

git checkout . 撤销所有文件修改

2、已将变更加入到暂存区,即已经执行了 git add 命令,可以使用 git reset HEAD 命令先从暂存区中移除文件,命令如下:
git reset HEAD <file>

比如

git reset HEAD rainbow.txt start.txt 从暂存区中移除 rainbow.txt start.txt等文件

git reset HEAD * 从暂存区中移除所有文件

git reset HEAD *.txt 从暂存区中移除所有txt格式文件

后续就可以使用 git checkout 命令撤销修改。

三、分支命令
1、查看分支

git branch 查看本地分支列表

git branch -r 查看远程分支列表

git branch -a 查看本地分支和远程分支

输出 :wq 退出查看模式

2、创建新分支

git checkout -b newB 创建newB分支并切换到该分支

相当于

git branch newB 创建newB分支

git checkout newB 切换到newB分支

3、推送新分支到远程

第一步 git push origin newB 推送本地分支到远程

第二步 git branch -u origin newB 建立本地分支和远程分支关联,也就是跟踪分支

或者

git push -u origin newB 推送本地分支到远程并跟踪分支

4、拉取本地不存在的远程分支

比如远程仓库存在一个分支feature/bugfix1,本地仓库不存在该分支,但需要拉取该分支到本地仓库修改,则可执行
git checkout -b 本地分支名x origin/远程分支名x

5、切换分支

git checkout rng 切换到本地rng分支

如果要切换到某个git提交节点可执行

git checkout commitId commitId为git提交节点ID

6、合并分支

git merge branchName 把branchName分支合并到当前分支,比如当前分支在rng分支,则代表把branchName分支合并到rng分支

如果在合并过程中碰到冲突,想取消合并,则可执行

git merge --abort

如果合并成功,但想撤销合并,则可先切到主分支,然后执行

git revert -m 1 commitId

四、贮藏

贮藏是一个非常实用的操作,比如我们在分支A修改了很多代码文件,然后来一个紧急任务需要去分支B修改,如果没有用贮藏,那么切换到分支B的前提,是在分支A把之前的修改内容提交或者丢弃,但这两种情况可能都不是我们想要的。 我们想要的是保留A分支的修改同时也不用提交到A分支。这时候我们就可以把A分支的修改内容贮藏起来,既可以保留修改也不用提交修改到分支中。

比如现在在A分支执行

git stash 则该命令会把所有的在A分支的修改内容添加到贮藏,同时A分支的修改也被撤销,这时候就可以安全的切换到

B分支。

在B分支处理完工作后,想继续回到A分支处理之前的修改,则可以切换到A分支执行

git stash apply 把贮藏区的修改应用到A分支

这时候贮藏可以丢弃

git stash drop

也行执行

git stash pop 直接应用贮藏并立刻从贮藏栈上丢弃它,相当执行了 git stash apply git stash drop

假如很多分支都贮藏过修改,那么贮藏区中就不止有一份贮藏,执行

git stash list 则可查看有哪些贮藏

$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log

贮藏是以栈的形式保存的

git stash apply 默认使用最近的贮藏信息,相当于 git stash apply stash@{0}

git stash drop 同理相当于 git stash drop stash@{0}

也可以使用其他贮藏,如 git stash apply stash@{2}

五、回滚、重置、撤销等
1、撤销某次提交

git revert commitId

2、重置分支到某个提交节点

git reset --hard commitId 强制回滚到此次提交

git push --force 或者 git push -f 强制push

强制合并 git reset --hard commitId

混合合并 git reset --mixed commitId

软合并 git reset --soft commitId

以上三种合并方式的区别可参考SourceTree的软合并、混合合并、强合并区别_souttree-CSDN博客s

git reset 默认模式是混合合并

git reset HEAD * 回退到当前版本并把暂存区的中文件退回到工作区中,后续可用 git checkout 命令撤销修改

git reset HEAD~1 回退到前一个版本

git reset HEAD~n 回退到前n个版本

git reset commitId 回退到指定版本

注:HEAD 代表当前当前版本指针,同理于当前版本的commitId

六、标签(tag)

git tag -a v2 -m "tag msg" 创建一个名称为v2的tag,并备注tag信息

简化命令
git tag v2

git tag -a v2 commitId 基于某个提交点创建tag

git push origin v2 推送tag到远程服务器

git push origin --tags 推送本地所有tag到远程服务器

git checkout -b [branchname] [tagname] 基于tag创建分支

七、git相关信息查看
1、查看当前仓库

git remote show origin

git remote -v

2、查看文件状态(哪些文件修改或者暂存了)

git status

git status -s 简单格式输出文件状态

git diff 查看未暂存的文件修改

git diff --staged 查看已暂存的文件修改

3、查看日志

git log -p -2 产看最近两次提交差异

git log --pretty=oneline 查看提交记录

git reflog 查看本地引用日志

相关推荐
和你一起去月球2 小时前
TypeScript - 函数(下)
javascript·git·typescript
我不是程序猿儿3 小时前
【GIT】TortoiseGit的变基(Rebase)操作
git
yyycqupt9 小时前
git使用(一)
git
Kkooe13 小时前
GitLab|数据迁移
运维·服务器·git
Beekeeper&&P...14 小时前
git bash是什么,git是什么,git中的暂存区是什么,git中的本地仓库是什么,git中工作目录指的是什么
开发语言·git·bash
Stara051118 小时前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
lsswear19 小时前
GIT 操作
git
勋勋勋勋小勋勋19 小时前
git分支合并某一次提交
git
PandaCave20 小时前
git常用命令以及注意事项总结
git