Git经常使用的命令

本文参考stormzhang的文章:从0开始学习 GitHub 系列之「团队合作利器 Branch」

1.配置账户信息:

git config –global user.name “michael”
git config –global user.email “michaelyang218@gmail.com”

2.配置alias 别名:

git config –global alias.co checkout # 别名 git co 代替 git checkout
git config –global alias.ci commit git ci git commit
git config –global alias.st status git st git status
git config –global alias.br branch git br git branch
git config –global alias.psm ‘push origin master’ git psm 代替 push origin master
git config –global alias.plm ‘pull origin master’ git plm pull origin master

3.配置git log 显示的形式:

git config –global alias.lg “log –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit –date=relative”
命令行输入:git lg 即可

4.其它配置:

git config –global core.editor “vim” # 设置Editor使用vim
git config –global color.ui true # git输出着色,显示不同颜色
git config –global core.quotepath false # 设置显示中文文件名
以上的配置基本就差不多了,默认这些配置都在 ~/.gitconfig 文件下的,你可以找到这个文件查看自己的配置,也可以输入 git config -l 命令查看

5.diff 比较:

git diff 只能比较当前文件和缓存区文件差异,什么是缓存区?就是你还没有执行 git add 的文件。
当然跟暂存区做比较之外,他还可以有其他用法,如比较两次 commit 之间的差异,比较两个分支之间的差异,比较缓存区和版本库之间的差异等,具体用法如下:
git diff < id1>< id2> # 比较两次提交之间的差异
git diff .. # 在两个分支之间比较
git diff –staged # 比较暂存区和版本库差异

6.tag 版本标签:

git tag v1.0 在当前代码状态下新建了一个v1.0的标签
git tag 查看历史tag记录
git checkout v1.0 切换到 v1.0 tag的代码状态

7.checkout 切换:

git checkout 分支/tag/commit 起到切换的作用
git checkout . 撤销当前目录下还没有add的文件的修改

8.stash 暂存修改信息:

git stash 暂存当前分支没有commit的代码,这是执行git status 可以发现没有任何修改
git stash list 查看缓存记录
这个时候你可以切换到其他分支做相应的修改和提交,然后再切换回来
git stash apply 还原当前分支缓存区的修改
git stash drop 删除缓存区最近的一条记录
git stash pop 还原并删除最近一条记录
git stash clear
就是清空所有暂存区的记录,drop 是只删除一条,当然后面可以跟 stash_id 参数来删除指定的某条记录,不跟参数就是删除最近的,而 clear 是清空。

9.分支合并:

在featureA分支上做了需求,合并到主分支(master)上去:
git checkout master
git merge featureA 暴力合并,不做对比直接放在master分支上
git checkout master
git rebase featureA 对比合并,自动解决冲突

10.reflog 查看所有的log操作记录

git reflog 查看分支所有的操作记录,包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录
git reset –hard 加ID 可以回退到某个点或则恢复到某个点

11.git blame查看文件修改历史

git blame [file_name] 可以将文件中的每一行的作者、最新的变更提交和提交时间展示出来

12.提交一个文件中修改的某几行

git add -p [file_name] 输入 y 来暂存该块、输入 n 不暂存、输入 e 手工编辑该块、输入 d 退出或者转到下一个文件、输入 s 来分割该块

13.压缩多个commit

git rebase -i HEAD~[number_of_commits]

14.创建一个项目:

1.本地新建:git init 初始化一个.git库,然后可以重零开始创建项目,
2.重网上github拉一个已存在的项目:git clone + http或者git@git(SSH)
3.将本地已经是个git库放到网上去,这个时候需要先在github上创建一个代码库,然后再本地执行
git remote add origin git@github.com:xxxxxx/test.git 或者 http 关联一个远程仓库,然后提交过去就可以了

15.分支管理:

git branch michael 创建 Michael分支(基于当前分支创建新分支,如果之前在master分支那么michael分支和master分支 现在 是一模一样的)
git checkout michael 切换到michael 分支
git checkout -b michael 综合上面两步操作(即新建并切换到新分支)
git branch 查看本地分支列表 、 git branch -r 查看远程分支 、 git branch -a 查看本地和远程分支
git branch -d michael 删除michael分支 -D (强制删除)
git push origin :michael 删除远程michael 分支
git checkout -b michael origin/michael 将远程的michael分支复制到本地新建的michael分支,并切换到michael分
这里写图片描述

主要分支

master: 永远处在即将发布(production-ready)状态

develop: 最新的开发状态

辅助分支
feature: 开发新功能的分支, 基于 develop, 完成后 merge 回 develop

release: 准备要发布版本的分支, 用来修复 bug. 基于 develop, 完成后 merge 回 develop 和 master

hotfix: 修复 master 上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后 merge 回 master 和 develop

https://github.com/nvie/gitflow github 有介绍如何安装和使用git flow

git patch

git format-patch -k commit_id -number :生成patch 并保存commit信息中的tittle

将patch拷到对应目录然后
git am -k patch名字 :如果没有冲突就已经完成了,可以使用git log 查看patch的log信息(-k保留了patch commit信息的title),如果有冲突继续 下面的步骤:(如果patch是在repo环境下生成的,需要使用:git am -k 0001-Calendar-Fix-failure-calendar-on-M-Build-on-GTS.patch –directory LINUX/android/packages/apps/Calendar 即directory加上patch应该打到哪个git目录下)

git apply –reject patch名字 :它会生成.rej的文件,这个文件就是和本地原文件对比后的差异结果
vim .rej的文件 并在vim里面输入:进入命令模式,vsp 本地文件 然后就会出现两个窗口对比,,然后merge好并保存

git add 更改的文件 :本地merge好的文件
git am –resolved :冲突解决完成
git log :查看是否有patch的log,有的话就成功了,然后继续打 打完了一起repo upload . 或者使用git 提交。
git am –abort :删除上一次提交的patch信息

当在git commit 填写commit信息不小心异常退出,那就会当前目录下的.git/目录存着.COMMIT_EDITMSG.swp .COMMIT_EDITMSG.swo 这两个缓存文件,我们需要把它删除就可以了,
注意不要删除COMMIT_EDITMSG这个文件,这个需要存在

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值