git常用命令手册

git常用命令手册

大白菜

简介

本手册列举了一些常用的git命令,操作系统环境为macOS 10.15.3

使用思想

  1. 首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
  2. 那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
  3. 所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。
  4. 远程库规则:
    master分支是主分支,因此要时刻与远程同步;
    dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
    bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
    feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

git常用命令

初始化

git init

新增文件/提交修改

  • 工作区/暂存区
    工作区=你当前工作的目录
    暂存区=git add后暂时存放到暂存区待提交
git add [filename1] [filename2]

提交到本地仓库

git commit -m "[comment]"

查看变更列表

git status

查看文件差异

git diff [filename]

查看版本控制记录

# 显示历史提交记录
git log
# 显示历史命令记录
git reflog

版本回退

# 回退到上一个版本
git reset --hard HEAD^
# 回退到上上一个版本
git reset --hard HEAD^^
# 回到上100个版本
git reset --hard HEAD~100
# 直接回到某一版本号(版本号不用写全,一般前几位就行系统会自动查找)
git reset --hard 1094a
  • 撤销某一文件在工作区的修改(回到最近一次git add/git commit时候的状态)
    可以理解为从历史库或暂存区中回退版本
git checkout -- [filename]
  • 撤销暂存区的修改-回退git add
# 此处HEAD表示最新的版本
git reset HEAD [file]

删除文件

git rm [file]
# 删除暂存区文件:use "git rm --cached <file>..." to unstage
git rm --cached <file>
# 误删回退用checkout-从工作区或者版本库中回退
git checkout -- [filename]

分支管理

  • 创建并切换分支
# 推荐使用-创建并切换
git switch -c dev
# -b:创建并切换
git checkout -b dev
# 上述命令等于如下2条
  • 创建分支
git branch dev
  • 切换分支
# 推荐使用
git switch dev
# 也可以用(但是容易和撤销混淆)
git checkout dev
  • 查看分支
git branch
  • 分支合并
# 将dev分支合并到当前分支
git merge dev
# 禁用Fast forward模式,并在merge时新增一个commit(从分支历史上就可以看出分支信息)
git merge --no-ff -m "merge msg" dev
  • 删除分支
# 已合并的分支使用-d,否则会出现告警提示
git branch -d dev
# 强行删除分支
git branch -D feature-vulcan

紧急修复bug时常用分支姿势

  • 先备份当前工作状态(例如你现在在dev分支干活)
# 临时存储当前工作现场
git stash
  • 确定从哪个分支checkout
# 切换到master分支
git checkout master
  • 创建新的分支
git checkout -b issue-101
  • 修复并提交
git add [file]
git commit -m "fix bugs"
# 可能会出现如下输出,这里的4c805e2即为commit-id
[issue-101 4c805e2] fix bug
  • 修复完成后切换回master分支
git switch master
  • 分支合并
git merge --no-ff -m "merged bug fix 101" issue-101
  • 继续切回dev分支开发并恢复之前工作状态
git switch dev
# 查看之前保存的工作现场
git stash list
# 切回工作现场并删除stash(等于如下2句)
git stash pop
# 恢复工作现场
git stash apply
# 删除临时工作现场
git stash drop
# 多次stash时候使用如下命令确定回到哪个工作现场
git stash apply stash@{0}
  • 将master分区上做的修复提交操作复制到dev分支
# 4c805e2为前面修复操作的commit-id
git cherry-pick 4c805e2

多人协作

远程库相关

  • 查看远程库
git remote -v

github常用指令

快速提交本地工作区到github(官方教程)

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/AbbySec/base_blockchain.git
git push -u origin master

将本地库推送到github

  • 本地库与远程库关联
git remote add base_blockchain https://github.com/AbbySec/base_blockchain.git
  • 推送
# 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
# 还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
# base_blockchain=远程分支,master=本地分支
git push -u base_blockchain master

github语言设置

在项目中添加一个.gitattributes,填写内容如下:

*.html linguist-language=python
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值