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命令
无论是我们自己把本地的项目新建了一个远程仓库 还是 从远程仓库获取到了 本地,现在我们都在本地有了一份项目代码,服务器上对应有项目代码的信息. 现在我们就开始进行交互操作了. 也就是说明一些在 正常开 ...
随机推荐
- vue 标题上下滚屏 无缝轮播
参考网址:https://www.jianshu.com/p/b6813193ca0d <template> <div class="wrap" :style=& ...
- Pycharm----默认字体大小的设置
设定前 设定后,修改字体的大小为:15号 设置方式:按照截图操作选择后,点击”apply“即可
- vue1 计算属性
- webclient上传下载文件
定义WebClient使用的操作类: 操作类名称WebUpDown WebClient上传文件至Ftp服务: //// <summary> /// WebClient上传文件至Ftp服务 ...
- linux mint安装mysql-8.0.16
1.使用通用二进制文件在Unix / Linux上安装MySQL 下载的文件:mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz 注意: 如果您以前使用操作系统本机程 ...
- P4053 [JSOI2007]建筑抢修 堆贪心
思路:堆贪心 提交:1次 题解: 先按时间\(sort\),然后如果能修就直接扔堆里,不能修取堆顶比一下时间长短,把时间短的扔进堆: #include<cstdio> #include&l ...
- 【题解】[Nwerc 2006]escape -C++
Description 给出数字N(1<=N<=10000),X(1<=x<=1000),Y(1<=Y<=1000),代表有N个敌人分布一个X行Y列的矩阵上 矩形的 ...
- 【题解】P1638 逛画展-C++
原题传送门 思路这道题目可以通过尺取法来完成 (我才不管什么必须用队列)什么是尺取法呢?顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后 ...
- 008_STM32之_keil编译内存大小解析
Program Size: Code=28784 RO-data=6480 RW-data=60 ZI-data=3900 的含义 1. Code: 程序所占用的FLASH大小,存储在FLASH. ...
- learning express step(十一)
learning express.Router() code: const express = require('express'); const app = express(); var route ...