Git命令学习

Git命令学习

配置

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

不配置也行,当遇到要求登录权限的远程仓库会让你在手动输入用户名、邮箱、以及密码。

初始化

git init

克隆仓库 下载仓库

git clone 链接

添加文件

git add .              # 添加全部文件
git add 文件名         # 添加单个文件

Commit

git commit -m "内容"   # 添加commit信息
git commit --amend     # 改写提交   重写上一次的提交信息

Commit规范

使用commit时在内容中添加以下标签,使commit提交更加规范:

  • feat: 新功能(feature)
  • fix: 修补bug
  • docs: 文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor: 重构(即不是新增功能,也不是修改bug的代码变动)
  • chore: 构建过程或辅助工具的变动
  • revert: 撤销,版本回退
  • perf: 性能优化
  • test: 测试
  • improvement: 改进
  • build: 打包
  • ci: 持续集成

查看日志

git log
git reflog    # 查看提交历史

移除文件

git rm

此方法仅限git rm,因为git rm会先将文件放入缓存区,且没有使用commit提交的情况下。

首先使用git rm删除一个文件:

git rm d.c

然后使用git reset重置所有缓存区操作:

git reset

重置完成之后使用git checkout命令将文件取消操作:

git checkout d.c

回滚代码仓库

git reset

有三种模式:--soft--mixed以及--hard

  • 使用--soft就仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。
  • 如果使用--mixed,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。
  • 如果使用--hard,那么一切就全都恢复了,头变,add的暂存区消失,代码什么的也恢复到以前状态。

回滚到指定历史版本

先使用git log查看历史版本:

git log

然后使用git reset --hard命令回滚:

git reset --hard 要回滚id

回滚当前仓库指向的版本

git reset --hard HEAD^

^代表上一个版本的意思,HEAD代表当前仓库的指向。

当然我们也可以使用另外一种方式来回滚到当前仓库的指定版本:

git reset --hard HEAD~3

~3代表以当前版本为基数,回滚多少次。

查看提交之后文件是否做了改动

git status

Git创建分支

git branch
git checkout

使用git checkout -b参数来创建一个分支,创建完成分支后会自动切换过去:

git checkout -b dev

然后使用branch来查看当前属于哪个分支,也就是查看HEAD的指向:

git branch

git checkout -b等价于:

git branch dev
git checkout dev

git branch 如果后面跟着名字则会创建分支,但不会切换。

git checkout 后面如果是分支名称则切换过去。

git merge  分支名       # git合并分支
git branch -a         # git查看分支
git branch -D  文件名  # git删除本地分支
git push origin --delete  # git删除远程分支

Git修改分支名称

使用-m选项:

git branch -m 分支名 新的分支名

Git保存当前工作切换分支

git stash pop

当在别的分支做完事情之后,在切换回刚刚的分支,然后在刚刚的分支中将状态恢复。

将别的分支修改转移到自己的分支

git cherry-pick

Git强制合并分支

--allow-unrelated-histories

Git拉取远程所有分支

git fetch

也可以拉取指定分支的最新内容:

git fetch xxxx

Git子模块管理

git submodule

Git分支开发步骤

一般情况下我们开发都要在不扰乱master代码的情况下进行开发:

  1. 拉取分支,分支名简明摘要说要干什么,然后干活,在合并到master,合并之后在删除分支,这是基本步骤,不需要留额外分支,分支只是为了将来看代码时方便而已,能看到这个分支是干什么的。

Git强制删除分支

git branch 

如果遇到无法删除的分支可以使用git branch -D 大写的D即可。

Git查看不同分支的文件差异

git diff

Git查看仓库信息

git remote

使用remote -v可以查看更详细的权限信息。

  • fetch代表可以拉取仓库,push代表可以推送。
  • 如果没有权限只能拉取的情况下不会显示push

Git新增分支操作

git switch
git restore

这两个命令是git 2.23以后引入的命令,目的是为了提供对新手更友好的分支操作,最早我们使用的是git checkout命令来对分支进行操作,这个命令相对于复杂了许多,使用很多子参数来进行操作,为此git新增了两个命令:switchrestoreswitch是用来切换分支与新增分支的,而restore用来撤销文件的修改,使其变得更明确一点。

切换分支

git switch dev

注意如果分支不存在,是不会创建的。

切换到commit ID

切换到指定id并创建一个分支,我们称之为分离HEAD状态:

git switch -d f8c540805b7e16753c65619ca3d7514178353f39

只需要加上-d参数就可以了,而checkout是不需要加-d的,在switch里一切变得明确了很多。

创建分支

如果要合并一个分支必须加上-b

git switch -b dev

创建分支则是-c

git switch -c dev

git restore命令

是用来撤销提交与修改的,如:

git restore file

使用这条命令会将文件从暂存区删除。

git restore file

这条命令会不会将文件从暂存区里删除,会将文件在暂存区里的状态覆盖到工作区,如我在工作区对这个文件又进行了修改,那么使用这个命令可以将这个文件在暂存区里的内容恢复到工作区。

Git命令总结

创建

克隆现有存储库

git clone

创建一个新的本地存储库

git init

当地变化

Changed files in your working directory

git status

Changes to tracked files

git diff

将所有当前更改添加到下一个提交

git add .

在中添加一些更改到下一次提交

git add -p

提交跟踪文件中的所有本地更改

git commit -a

提交先前进行的更改

git commit

更改最后一次提交

警告: 不要修改已发布的提交!

git commit --amend

提交历史

显示所有提交,从最新开始

git log

显示特定文件随时间的变化

git log -p

谁更改了中的内容和时间

git blame

分支结构和标签

列出所有现有分支

git branch -av

切换HEAD分支

git checkout

根据您当前的HEAD创建一个新分支

git branch

基于远程分支创建一个新的跟踪分支

git checkout --track

删除本地分支

git branch -d

用标签标记当前提交

git tag

更新和发布

列出所有当前配置的遥控器

git remote -v

显示有关遥控器的信息

git remote show

添加名为的新远程存储库

git remote add

从下载所有更改,但不要集成到HEAD中

git fetch

下载更改并直接合并/集成到HEAD中

git pull

在远程上发布本地更改

git push

删除遥控器上的分支

git branch -dr

发布标签

git push --tags

合并与基础

将合并到当前HEAD中

git merge

将当前的HEAD重新设置到

警告: 不要重新发布已发布的提交!

git rebase

中止基准

git rebase --abort

解决冲突后继续进行基准

git rebase --continue

使用您配置的合并工具解决冲突

git mergetool

使用编辑器手动解决冲突,并(在解决之后)将文件标记为已解决

git add
git rm

撤消

丢弃工作目录中的所有本地更改

git reset --hard HEAD

放弃特定文件中的本地更改

git checkout HEAD

还原提交(通过产生具有相反更改的新提交)

git revert

将HEAD指针重置为上一次提交

  • …并丢弃此后的所有更改

    git reset --hard
    
  • …并将所有更改保留为未分阶段的更改

    git reset
    
  • …并保留未提交的本地更改

    git reset --keep
    

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值