1. 全局操作
git --version //git 机器上是否存在
git init --bare project.git //服务端:初始化一个新的仓库
chown -R zhangsan:zhangsan project.git/ //修改仓库的权限
2. 添加、提交修改、对比、重命名
添加/提交:
git add <file> //添加单个文件
git add --all //添加所有,适合项目初始化或批量提交的时候
git add . //进入某个文件夹根目录,表示添加此目录下面所有变更的文件
git commit -m "操作说明" //提交
对比:
重命名:
git mv a.php b.php //重命名
git status -s //文件关联状态
git commit -a -m "a.php文件修改为b.php" //-a修改的全部提交
git push origin master //推到远程
3. 日志查看
git log //查看所有日志
git log -2 //查看最近提交的2行
git log --pretty=oneline //以行的形式显示
git log --pretty=oneline --abbrev-commit //行短标识的显示形式
git log --graph --pretty=oneline --abbrev-commit //查看分支合并图,并以行短标识的显示形式
3. 查看历史命令
git reflog
4. 回滚版本
git reset --hard commit_id
git reset --hard e9a838d #返回到某个节点,不保留修改。
git reset --soft e9a838d #返回到某个节点。保留修改
回滚到上N个版本的快捷方式:
git reset --hard HEAD^ //上1个版本
git reset --hard HEAD^^ //上2个版本
git reset --hard HEAD^^^ //上3个版本
当然如果要回退到上100个版本不可能100个^,可以:
git reset --hard HEAD~100
5.撤销修改,恢复删除,获取指定commit_id信息
工作区:
git checkout -- <file>
git checkout -- . //恢复在当前目录下的所有修改
暂存区:
第1步:git reset --hard <file>
第2步:按工作区的处理方式处理
已经提交版本库:
第1步:git reset --hard commit_id
第2步:按回退的流程处理
推送到远程库:
恭喜你,无药可救
获取指定commit_id文件信息:
git checkout commit_id <file>
与git clean 混合使用:
git checkout -- . && git clean -xdf
6-1:清除
git clean -df #返回到某个节点
git clean 参数 -n 显示 将要 删除的 文件 和 目录 -f 删除 文件 -df 删除 文件 和 目录
6-2.删除文件
git rm <file>
git commit -m "操作说明"
7.分支操作
查看分支:git branch
创建分支:git branch <name>
分支推送到远程:git push origin <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
强制删除一个没有合并过的分支:git branch -D <name> tips:慎用
删除远程分支:git push origin --delete <name>
7-1.重命名远程分支
在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。
查看远程分支:git branch -av
删除远程分支:git push origin --delete <oldname>
重命名本地分支:git branch -m <oldname> <newname>
推送本地分支:git push origin <newname>
8.分支合并保留合并记录
git merge --no-ff -m "merge with on-ff" dev
tips:合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并;而fast forward合并就看不出来曾经做过合并,默认不加--no-ff是按fast forward的合并方式。
9.分支临时存储
保存:
git stash //备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。不带备注。
git stash save "临时修改1001bug,暂存" //带备注
git stash -a save "临时修改1001bug,暂存" // -a选项会把项目里面新加入的代码文件同时放到暂存区
查看:
git stash list //显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复
恢复:
git stash apply [--index][<stash@{id}>] //恢复后,stash内容并不删除,你需要用git stash drop来删除
git stash pop [--index][<stash@{id}>] //恢复最新(指定stash)并删除stash
删除:
git stash drop [<stash@{id}>] //删除某一个进度,默认删除最新进度
创建分支
git stash branch <branchname> <stash@{id}> //基于暂存区创建分支
清空:
git stash clear //清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
参数解释:
--index 参数:不仅恢复工作区,还恢复暂存区 <stash@{id}> 指定恢复某一个具体进度。如果没有这个参数,默认恢复最新进度
以下命令恢复编号为0的进度的工作区和暂存区
git stash pop -- index statsh@{0}
10.标签(tag)管理
列出所有tag:
git tag
详情查看:
git show <tagname> //查看指定tag包信息
git show v1.0
创建:
git tag <tagname> //新建一个标签,默认为HEAD
git tag v1.0
git tag <tagname> commit_id //指定一个commit id
git tag v1.0 b1b76f
git tag -a <tagname> -m "描述tag的说明" //带有备注tag的信息
git tag -a v1.0 -m "供应链1.0开发完成,上线" b1b76f
git tag -s <tagname> -m "描述tag的说明" //用私钥签名一个标签,PGP签名标签
git tag -s <tagname> -m "供应链1.0开发完成,上线" b1b76f
删除:
未推送到远程:
git tag -d <tagname> //删除指定tag包
git tag -d v1.0
已推送到远程:
第1步:git tag -d v1.0 //删除本地
第2步:git push origin :refs/tags/v1.0 //删除远程tag
推送:
git push <主机名> <tagname> //推送指定tag
git push origin v1.0
git push <主机名> --tags //一次性推送全部尚未推送到远程的本地标签
git push origin --tags
参数解释:
origin:远程主机名
11.忽略特殊不用提交的文件
第1步:编写.gitignore文件
第2步:把你需要过滤的文件直接写在.gitignore文件中。
12.配置别名
方便管理和使用命令,如git st就表示git status这是不是很爽
git config --global alias.unstage 'reset HEAD' //撤销修改
git config --global alias.last 'log -l' //显示最后1次提交
配置文件存放目录:
cat .git/config
删除别名:
直接删除配置文件.git/config alias节点,指定别名的那一行,保存就行
tips:当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中.
13.git服务器管理
14. 删除不存在对应远程分支的本地分支
查看远程分支状态:git remote show origin
本地版本库中去除远程删除的分支:git remote prune origin
15. 打包指定commit修改的代码
git archive -o update.zip 待导出的ID(a3a12c4) $(git diff --name-only 待导出的上一个提交ID(3ba0909))
例:git archive -o update.zip a3a12c4 $(git diff --name-only 3ba0909)
Tips: 这个其实就是比较版本之前差异,然后导出不一样的。
- git tag 常用笔记
git tag 常用笔记 查看 tag 列出现有 tag git tag 列出 v1.4.2 相关的 tag git tag -l "v1.4.2" 查看指定 tag 的信息 gi ...
- Git命令常用清单
本文从以下十个方面,介绍Git命令的常用清单: 一.新建代码库 二.配置 三.增加/删除文件 四.代码提交 五.分支 六.标签 七.查看信息 八.远程同步 九.撤销 十.其他 每天使用 Git ,但是 ...
- Git命令学习笔记
一.本地代码增,删,改,查,提交,找回git checkout . //抛弃工作区所有修改git checkout -- <file> //抛弃工作区& ...
- git命令常用操作
第一步:拉取git上的文件(git clone 远程仓库地址) 第二步:在主目录下运行git base here,执行git status 第三步:添加文件到本地仓库(git add 文件)之后,再次 ...
- git 命令常用总结
详细git教程可参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 基础命令 用 ...
- GIT命令行笔记
一次常规的初始化+推送: git initgit config user.email "you@example.com"git config user.name "asm ...
- 前端日常常用git命令
讲真,很早之前就想总结一下git常用的命令了,每次用着用着很多命令都记不住.而且我是英语渣包,有些单词慢慢靠背. git只是一个工具,我这写的只是适合我这种快速上手使用工具的小白,深究的请移步别处. ...
- Git常用命令清单笔记
git github 小弟调调 2015年01月12日发布 赞 | 6收藏 | 45 5k 次浏览 这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加 ...
- 项目管理---git----快速使用git笔记(六)------本地开发与远程仓库的交互----常用git命令
无论是我们自己把本地的项目新建了一个远程仓库 还是 从远程仓库获取到了 本地,现在我们都在本地有了一份项目代码,服务器上对应有项目代码的信息. 现在我们就开始进行交互操作了. 也就是说明一些在 正常开 ...
随机推荐
- Java锁--Condition
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3496716.html Condition介绍 Condition的作用是对锁进行更精确的控制.Condi ...
- Java锁--框架
根据锁的添加到Java中的时间,Java中的锁,可以分为"同步锁"和"JUC包中的锁". 同步锁 即通过synchronized关键字来进行同步,实现对竞争资源 ...
- SpringMVC利用AOP实现自定义注解记录日志
作者:飞翔的拖鞋up 推荐:彻底征服 Spring AOP 之 实战篇 推荐:jason_zhangz 本文抛砖引玉,并没有详细的介绍更全面的内容,通过一个例子让初次使用的人能够快速入门,简单的介绍一 ...
- 使用 uni-app 开发遇到的问题
想法: uni-app 给我的感觉就像是把微信小程序的API,组件和vue的语法揉捏在一起所组成框架,没有原生小程序和vue那种流畅感,官方的 uni-ui 组件库不够成熟,坑比较多. 问题一:自 ...
- border-width
border-width 语法: border-width:<line-width>{1,4} <line-width> = <length> | thin | m ...
- leetcode解题报告(4):Search in Rotated Sorted ArrayII
描述 Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...
- [Luogu] 最小差值生成树
https://www.luogu.org/recordnew/show/6125570 思路就是巧妙的枚举所有的生成树,取最优值首先按照边权排序找出第一颗最小生成树(l, r),其中l表示最小边的编 ...
- Java并发指南7:JUC的核心类AQS详解
一行一行源码分析清楚AbstractQueuedSynchronizer 转自https://www.javadoop.com/post/AbstractQueuedSynchronizer#toc4 ...
- 牛顿法与拟牛顿法(四) BFGS 算法
转自 https://blog.csdn.net/itplus/article/details/21897443
- Linux ubuntu centos 下 grep显示前后几行信息
标准unix/linux下的grep通过下面参数控制上下文 grep -C 5 foo file 显示file文件里匹配foo字串那行以及上下5行grep -B 5 foo file 显示foo及前5 ...