【Git】Git常用命令汇总

【Git】Git常用命令汇总

文章参考网址:https://backlog.com/git-tutorial/cn/

快捷目录

内容

数据库设定和初始化

  1. 设置全局用户名git config --global user.name <用户名>
  2. 设置全局电子邮件git config --global user.email <电子邮件>
  3. 新建数据库git init 在当前目录下创建

notes:

  • 在windows环境下,非ASCII字符的文件名会显示为编码,如下设置后便可以正常显示:
    git config --global core.quotepath off
  • 在windows环境下,只能输入ASCII字符,在提交包含非ASCII字符的信息时,不要使用-m选项,应在外部编 辑器中使用。(建议全英文)

提交操作

  1. 确认工作树和索引的状态git status
  2. 将文件加入到索引git add <file>.. 可同时加入多个
    指定参数.*可以把所有文件加入到索引
  3. 提交文件git commit -m "<message>" 注意上面提到的notes。
  4. 查看提交记录git log

远端数据库

  1. 添加远程数据库git remote add <name> <url>
    执行推送或拉取的时候,若省略数据库的名称,默认会使用名为origin的远程数据库。(建议命名)
  2. 推送更新内容git push <url> <refspec>
    <repository> 目标url地址;<refspec> 指定分支(远程)
    若指定-u选项,下次推送时可省略分支名称。
    在克隆的数据库目录执行推送时,可以省略<repository><refspec>
  3. 克隆远程数据库git clone <repository> <directory>
    <directory> 保存目录名称(本地)。
  4. 从远程数据库拉取更新内容git pull <repository> <refspec>
    功能实际上为fetchmerge的组合。
  5. 从远程数据库拉取更新内容但不合并git fetch <repository> <refspec>
    取得的提交会导入到没有没有名字的分支,若要合并,可以合并FETCH_HEAD.

以上操作可能遇到冲突,需要手动解决(修改合并提交)。

分支操作

  1. 创建分支git branch <branchname>

  2. 查看分支git branch 不带参数,*代表当前分支

  3. 切换分支git checkout <branchname>

  4. 创建并切换分支git checkout -b <branchname>

  5. merge合并分支git merge <branchname>
    默认为fast-forward合并:当前分支没有被更改过,目标分支被更改过,当前分支会直接移动到最新的目标分支上。
    可以指定参数--no-ff设置为non fast-forward合并,保留当前分支和目标分支的分支信息。

  6. rebase合并分支:…

  7. 删除分支git branch -d <branchname>

标签操作

  1. 添加轻标签git tag <tagname>
    log命令中添加-decorate选项时,可以查看包含标签的历史记录。
  2. 查看标签git tag
  3. 添加注解标签git tag -am "<notes>" <tagname>
  4. 查看标签列表和注解git tab -n

改写提交

  1. 修改上一次的提交git commit --amend
  2. 添加一个新的节点记录取消上一次的提交git revert HEAD
    意思是会产生一个新的提交,这个提交和上上次提交相同,保留取消上一次提交记录的过程树。
  3. 回退(删除直到)提交git reset
    --hard:HEAD位置,索引,工作树都修改。
    --soft:只修改HEAD位置。
    --mixed:不修改工作树。
  4. 从目标分支复制指定提交到当前分支git cherry-pic <序列号>
  5. 汇合提交:将多个指定提交汇合为一个提交git rebase -i <~/^操作>
  6. 将目标分支的所有提交合并到当前提交git merge --squash <branchname>
    将目标分支树移动到当前分支上。

以上操作可能遇到冲突,需要手动解决(修改合并提交)。

拓展内容:成功的Git分支模型

在这里插入图片描述

主分支

主分支有两种:masterdevelop
master分支只负责管理发布的状态。在提交时使用标签记录版本号。
develop分支是针对发布的日常开发分支。

特性分支

feature分支是针对新功能的开发,在bug修正的时候从develop分支分叉出来的。基本上不需要共享特性分支的操作,所以不需要远端控制。完成开发后,把分支合并回develop分支后发布。

release分支

release分支是为release做准备的。通常会在分支名称的最前面加上release-。release前需要在这个分支进行最后的调整,而且为了下一版release开发用develop分支的上游分支。

一般的开发是在develop分支上进行的,到了可以发布的状态时再创建release分支,为release做最后的bug修正。

到了可以release的状态时,把release分支合并到master分支,并且在合并提交里添加release版本号的标签。

要导入在release分支所作的修改,也要合并回develop分支。

hotfix分支

hotFix分支是在发布的产品需要紧急修正时,从master分支创建的分支。通常会在分支名称的最前面加上 hotfix-。

例如,在develop分支上的开发还不完整时,需要紧急修改。这个时候在develop分支创建可以发布的版本要花许多的时间,所以最好选择从master分支直接创建分支进行修改,然后合并分支。

修改时创建的hotFix分支要合并回develop分支。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值