五GIT常用命令

安装之类的就略过了直入正题
工作区:本地代码未add commit之前都在工作区
暂存区:修改后进行暂存的代码.git,如add 之后进行了存储
本地代码库:commit到本地代码库
远程仓库:push提交远程
忽略文件:.girignore配置忽略

作为注释

/开头防递归/结尾指定目录
表示匹配零个或多个任意字符
?表示只匹配一个任意字符
!表示取反
[abc]表示匹配a,b,c
[0-9]表示匹配0-9
/a
*z/表示匹配/a/z或/a/b/z或/a/b/c/d/z

配置提交代码时用户信息:

git config --global user.name "name"
git config --global user.email "xxx@email.com"
global为全局配置,如果想在某个独立项目中使用其他名字或邮箱去掉global即可

编辑git信息

git config -e 编辑当前仓库
git config -e --global 编辑所有仓库

查看配置信息:

git config --list

创建命令:

git init:初始化仓库在当前目录下生成.git目录
git init newrepo在newrepo目录下生成.git
git clone:远程仓库拷贝项目
git clone <repo> <directory>:拷贝到指定目录

提交与修改:

git add --<file>:添加文件到暂存区
git add .:添加所有文件到暂存区
git status:查看当前仓库状态 -s以紧凑格式输出
git diff:比较暂存区和工作区差异
git diff --cached/--staged查看已暂存要提交内容
git commit -m :注释说明"提交暂存区到本地仓库
git commit -a -m:合并add执行commit
git commit --amend:漏提文件或修改提交信息尝试重新提交
git rm:删除工作区文件
git rm --cached:移除文件追踪单不删除,可用于不小心提交了不想追踪文件且未添加.gitignore文件
git rm -f:强制删除暂存区文件
git mv from to:移动或重命名工作区文件

提交日志:

git log:查看历史提交记录
git log -p:查看每次提交差异-数字可以查看最近指定次数提交差异
git log --stat:每次提交简要信息
git log --oneline :简洁版历史提交记录
git log --graph:查看历史分支,合并
git log --reverse:逆向查看日志
git log --decorate:查看标签
git log --author="name" --oneline:查看指定用户提交日志
--since --before --until --after:查看指定日期或范围例:git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
git blame <file>:以列表形势查看指定文件修改记录

远程操作:

git remote:查看远程仓库操作-v显示仓库对应的URL
git ls-remote (remote):显式地获得远程引用完整列表
git remote show name:查看名为name的远程仓库信息
git remote add name url:添加一个新的远程仓库并用name替代url,后续可以直接用name操作
git remote rename from to:修改远程仓库简写名,同时修改远程分支名
git fetch name:结合上边命令使用从远程拉取代码
git fetch --all:抓取所有远程仓库
git fetch:抓去远程仓库代码需要手动合并
git pull:下载远程代码并合并
git push:上传远程代码并合并
git push origin a:b:将本地a分支推送到远程仓库b分支
git push origin --delete branchname:删除远程分支

分支管理:

git branch:查看本地分支
git branch (branchname):创建分支
git branch -d (branchname):删除指定分支
git branch -v:查看每个分支最后提交--merged与--no-merged过滤合并未合并
git branch -vv:列出本地分及其详细信息
信息git checkout (branchname):切换分支
git checkout -b (branchname):创建并切换到新创建分支
git rebase master:将当前分支所有修改移到变基移到master,然后再切换到master分支快速合并当前分支完成代码合并,减少提交历史
git rebase --onto master server client:取出 client分支,找出处于client分支和server分支的共同祖先之后的修改,然后把它们在 master分支上重演一遍,即排除server分之修改只将独属于client的修改重演到master分支
git rebase master server:将上边提到的server分支重演到master分支,切换到master再进行快速合并git merge server
尽量少用变基操作因为风险可能有点大,如果使用只在本地代码进行变基,如提交到远程确保不会再丢弃上传的变基

标签:

git tag -a <tagname>:添加标签用于记录关键节点
git tag -a <tagname> (提交id):在指定提交下追加标签
git tag -d <tagname>:删除标签
git tag:查看标签
git tag -a <tagname> -m "message":指定标签信息
git tag -a v1.2 9fceb02:历史提交打tag
git tag -s <tagname> -m "message":PGP签名标签
git log --oneline --decorate --graph --all:输出提交历史、各个分支的指向以及项目的分支分叉情况
git push origin tagname:显示提交标签后才能在远程仓库共享
git push origin --tags:推送所有标签到远程仓库
git checkout -b [branchname] [tagname]:在特定的标签上创建一个新分支
git show <tagname> :查看修改内容

撤销操作:

git reset:回退版本
git reset HEAD file:从暂存区恢复文件到已修改未暂存状态
git reset eb43bf file.txt:回退指定版本
git checkout --file:撤销文件修改到上次提交状态
git reset HEAD:覆盖暂存区,工作区不受影响HEAD~1/2/3指定版本
git reset --hard commitID:永指定版本覆盖工作区
git reset --hard HEAD:回到之前的状态或其他你想要恢复的状态
git rm --cached <file> :删除暂存区文件,工作区不变
git checkout .(全部替换)/git checkout -- <file>(替换文件),会清除工作区中未添加到暂存区的改动。
git checkout HEAD .(全部替换)/git checkout HEAD <file>(替换文件),会清除工作区未提交改动和暂存区未提交改动。

代码合并

git merge (branchname): 合并指定分支到当前分支
git merge --abort:有冲突时简单地退出合并并尝试恢复到合并前状态

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336

推荐阅读更多精彩内容