当前位置: 首页 > 编程日记 > 正文

常用git命令

常用 Git 命令清单。专用名词的译名如下。@半支烟

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

一、新建代码库


# 在当前目录新建一个Git代码库
$ git init# 新建一个目录,将其初始化为Git代码库
$ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 

二、配置

Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。


# 显示当前的Git配置
$ git config --list# 编辑Git配置文件
$ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.name "[name]" $ git config [--global] user.email "[email address]" 

三、增加/删除文件


# 添加指定文件到暂存区
$ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add . # 添加每个变化前,都会要求确认 # 对于同一个文件的多处变化,可以实现分次提交 $ git add -p # 删除工作区文件,并且将这次删除放入暂存区 $ git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区 $ git rm --cached [file] # 改名文件,并且将这个改名放入暂存区 $ git mv [file-original] [file-renamed] 

四、代码提交


# 提交暂存区到仓库区
$ git commit -m [message]# 提交暂存区的指定文件到仓库区 $ git commit [file1] [file2] ... -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区 $ git commit -a # 提交时显示所有diff信息 $ git commit -v # 使用一次新的commit,替代上一次提交 # 如果代码没有任何新变化,则用来改写上一次commit的提交信息 $ git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化 $ git commit --amend [file1] [file2] ... 

五、分支


# 列出所有本地分支
$ git branch# 列出所有远程分支
$ git branch -r# 列出所有本地分支和远程分支
$ git branch -a # 新建一个分支,但依然停留在当前分支 $ git branch [branch-name] # 新建一个分支,并切换到该分支 $ git checkout -b [branch] # 新建一个分支,指向指定commit $ git branch [branch] [commit] # 新建一个分支,与指定的远程分支建立追踪关系 $ git branch --track [branch] [remote-branch] # 切换到指定分支,并更新工作区 $ git checkout [branch-name] # 切换到上一个分支 $ git checkout - # 建立追踪关系,在现有分支与指定的远程分支之间 $ git branch --set-upstream [branch] [remote-branch] # 合并指定分支到当前分支 $ git merge [branch] # 选择一个commit,合并进当前分支 $ git cherry-pick [commit] # 删除分支 $ git branch -d [branch-name] # 删除远程分支 $ git push origin --delete [branch-name] $ git branch -dr [remote/branch] 

六、标签


# 列出所有tag
$ git tag# 新建一个tag在当前commit
$ git tag [tag]# 新建一个tag在指定commit $ git tag [tag] [commit] # 删除本地tag $ git tag -d [tag] # 删除远程tag $ git push origin :refs/tags/[tagName] # 查看tag信息 $ git show [tag] # 提交指定tag $ git push [remote] [tag] # 提交所有tag $ git push [remote] --tags # 新建一个分支,指向某个tag $ git checkout -b [branch] [tag] 

七、查看信息


# 显示有变更的文件
$ git status# 显示当前分支的版本历史
$ git log# 显示commit历史,以及每次commit发生变更的文件
$ git log --stat# 搜索提交历史,根据关键词 $ git log -S [keyword] # 显示某个commit之后的所有变动,每个commit占据一行 $ git log [tag] HEAD --pretty=format:%s # 显示某个commit之后的所有变动,其"提交说明"必须符合搜索条件 $ git log [tag] HEAD --grep feature # 显示某个文件的版本历史,包括文件改名 $ git log --follow [file] $ git whatchanged [file] # 显示指定文件相关的每一次diff $ git log -p [file] # 显示过去5次提交 $ git log -5 --pretty --oneline # 显示所有提交过的用户,按提交次数排序 $ git shortlog -sn # 显示指定文件是什么人在什么时间修改过 $ git blame [file] # 显示暂存区和工作区的差异 $ git diff # 显示暂存区和上一个commit的差异 $ git diff --cached [file] # 显示工作区与当前分支最新commit之间的差异 $ git diff HEAD # 显示两次提交之间的差异 $ git diff [first-branch]...[second-branch] # 显示今天你写了多少行代码 $ git diff --shortstat "@{0 day ago}" # 显示某次提交的元数据和内容变化 $ git show [commit] # 显示某次提交发生变化的文件 $ git show --name-only [commit] # 显示某次提交时,某个文件的内容 $ git show [commit]:[filename] # 显示当前分支的最近几次提交 $ git reflog 

八、远程同步


# 下载远程仓库的所有变动
$ git fetch [remote]# 显示所有远程仓库
$ git remote -v # 显示某个远程仓库的信息 $ git remote show [remote] # 增加一个新的远程仓库,并命名 $ git remote add [shortname] [url] # 取回远程仓库的变化,并与本地分支合并 $ git pull [remote] [branch] # 上传本地指定分支到远程仓库 $ git push [remote] [branch] # 强行推送当前分支到远程仓库,即使有冲突 $ git push [remote] --force # 推送所有分支到远程仓库 $ git push [remote] --all 

九、撤销


# 恢复暂存区的指定文件到工作区
$ git checkout [file]# 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file] # 恢复暂存区的所有文件到工作区 $ git checkout . # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 $ git reset [file] # 重置暂存区与工作区,与上一次commit保持一致 $ git reset --hard # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 $ git reset [commit] # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致 $ git reset --hard [commit] # 重置当前HEAD为指定commit,但保持暂存区和工作区不变 $ git reset --keep [commit] # 新建一个commit,用来撤销指定commit # 后者的所有变化都将被前者抵消,并且应用到当前分支 $ git revert [commit] # 暂时将未提交的变化移除,稍后再移入 $ git stash $ git stash pop 

十、其他


# 生成一个可供发布的压缩包
$ git archive

转载于:https://www.cnblogs.com/xiaobaizhang/p/7989956.html

相关文章:

springboot 读取配置文件内容的几种方式

1 使用 Environment 进行读取 env.getProperty("配置文件中的值") 2 使用注解的方式 PropertySource("classpath:application.properties") // 获取属性文件 //将其注解到类上 获取属性值 Value("${pictureSearchDemo.apiUrl}") // 获取属性…

Ubuntu9.10使用windows的字体的方法!

使用Ubuntu9.10已经有好几天了,安装字体算是我遇到的比较头疼的一件事,原本按照Ubuntu9.04的方法操作,发现无法使用windows中的字体,换了好几个方法,最终找打了解决方法,过程如下:1、新建一个文…

jmeter笔记(8)--关联

关联是jmeter中比较重要的一个点,在测试过程中有些数据是经常发生变化的,要获取这些数据,就需要使用关联,Jmeter可以通过“后置处理器”中的“正则表达式提取器”来处理关联。。 正则表达式提取器 1、在取样器下点击【添加】--【后…

java连接mysql以及增删改查操作

java连接数据库的代码基本是固定的,步骤过程觉得繁琐些,代码记起来对我来说是闹挺。直接上代码: (温馨提醒:你的项目提前导入连接数据库的jar包才有的以下操作 ) 1 class DBConnection{2 3 // 驱动类…

Jrebel 热部署插件的使用和破解

生成GUIDS 的网站:https://www.guidgen.com/ Jrebel 介绍和破解说明:https://www.cnblogs.com/wang1024/p/7211194.html 本地服务器软件,在使用eclipse或者idea 时打开就可以了。链接:百度云链接 密码:buin

微软SCRUM 1.0流程模板在中文版TFS2010上无法创建项目的解决办法(续)

原文: http://www.almnetworks.net/zh-CN/post/2010/08/04/Microsoft-Visual-Studio-Scrum-10-Template-on-Chinese-Version-of-TFS.aspx 经过我的进一步测试,发现以上步骤不能解决这个问题,但是我找到了一个可以暂时保证我们使用SCRUM模板的…

《父亲家书》选:给初为人师的儿子

文飞:离家已二十九天了,可能是年纪大了的缘故,不要说你妈妈,就连我也想念你了!为不影响你工作,我坚持不够一个月“决”不给你去信。这不到期了,就按时给你去信。你上次来信,早已收到…

vue-cli脚手架

安装 全局环境安装,不必要在项目地址下安装:npm install -g vue-cli 卸载 全局卸载:npm uninstall -g vue-cli 查看是否安装成功:vue list 查看vue版本,vue -V 回车,查看vue最新的版本。 使用 进入到编辑器…

JackJson 使用记录

Map<String,Object> map new HashMap();map.put("ssss","sadsad");// 定义JackJson 对象ObjectMapper mapper new ObjectMapper();//将map转换成JSON字符串String image_json mapper.writeValueAsString(map); https://blog.csdn.net/a123demi/art…

APUE 学习笔记 - Chapter 6. System Data File and Infomation

1.密码文件 每个系统都会有一个文件统一记录用户名与密码&#xff0c;通常是/etc/passwd。关于这个文件有&#xff1a;root 的 uin 通常为 0 .文件中的 x为占位符&#xff0c;代表真实的加密密码保存在另外的文件。没有这一列的时候&#xff0c;表示该用户没有设立密码。将用户…

加密工具和unlocker的使用

在我的电脑上&#xff0c;一些不想让人翻看的程序和资料都使用一款《E-钻文件夹加密大师》的伪加密软件来加密。 这个程序只防君子不防小人&#xff0c;真正想看的人还是可以找到方法看的。并且这个软件还有些bug和不方便之处。 我在电脑上编程之前需要对多个代码文件夹进行解密…

第四章:操作列表

第四章&#xff1a;操作列表4.1 遍历整个列表如果名单很长&#xff0c;将包含大量反复的代码。另外&#xff0c;每当名单的长度发生变化时&#xff0c;都必须修改代码。通过for循环&#xff0c;可让Python去处理这些问题1&#xff09;使用for循环来打印魔术师名单中的所有名字&…

约束,索引,rownumrownum

--constraint --not null 非空约束 --unique 唯一键 --非空&唯一 --自定义检查约束 --创建约束时&#xff0c;为约束起名 --在添加完列后&#xff0c;还可以添加约束 --除了not null不可以 --主键约束 --为了保证该列的数据能够证明行记录在表中是唯一的 --主键约束从形式看…

微信小程序如何搭建本地环境开发

必要软件 ngrok :用来搭建内网穿透微信小程序开发工具微信小程序账号 如何使用ngrok 搭建内网穿透 在官网下载windows版本的ngrok&#xff0c;并且注册一个免费的账号&#xff0c;至此会给你生成一个认证码。ngrok官网&#xff0c;附一个下载好的文件&#xff0c;里包括官方版…

跨域部署Silverlight时需要注意的问题

当我们的Silverlight程序(.xap)发布地址和网页发布地址处于不同服务器上(跨域状态)时&#xff0c;由于安全机制在Silverlight和Javascript调用时会出现一些问题&#xff0c;如&#xff1a;Silverlight调用页面中的Javascript方法或页面中的Javscript调用Silverlight方法时报错或…

做国内最好的ITSM服务管理软件

E8.HelpDesk支持多种服务台管理体系&#xff0c;支持事件管理、问题管理、变更管理、配置管理、发布管理、运行管理的全程自动化&#xff1b;整个处理工作以流程自动化的任务贯穿&#xff0c;形成闭环的工作流&#xff0c;并有计划任务机制、报警提醒机制、事件升级机制、跟踪反…

AppBaseJs 类库 网上常用的javascript函数及其他js类库写的

AppBaseJs类库。一个借鉴了网上常用的函数及其他js类库写的,方便大家的调用。代码如下:/*----------------------------------- Web Application JavaScript Library 2009.11 janchie ------------------------------------*///String原生对象扩展 置空左右端空格 String.proto…

字符串转换整数 (atoi)

题目&#xff1a; 请你来实现一个 atoi 函数&#xff0c;使其能将字符串转换成整数。 首先&#xff0c;该函数会根据需要丢弃无用的开头空格字符&#xff0c;直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时&#xff0c;则将该符号与之后面尽可…

Spring boot 忽略对mybatis的配置

SpringBootApplication(exclude{DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class}) https://blog.csdn.net/wo541075754/article/details/73379962

Git远程仓库地址变更

简单方法 使用方法三 方法有很多&#xff0c;这里简单介绍几种&#xff1a; 以下均以项目git_test为例&#xff1a; 老地址&#xff1a;http://192.168.1.12:9797/john/git_test.git 新地址&#xff1a;http://192.168.100.235:9797/john/git_test.git 远程仓库名称&#xff…

如何优化你的网站快速提高流量

网站页面优化的SEO策略 对那些会主动产生成百上千甚至成千上万页面的网站优化&#xff0c;一定要转换思维方式。传统SEO程序&#xff0c;先调查选定关键词&#xff0c;然后针对每个关键词主题产生页面&#xff0c;手动书写标题标签&#xff0c;段落标题标签 和页面简介&#xf…

c#正则表达式使用详解

正则表达式(Regular expressions)是一套语法匹配规则&#xff0c;各种语言&#xff0c;如Perl&#xff0c; .Net和Java都有其对应的共享的正则表达式类库。在.Net中&#xff0c;这个类库叫做Regex。简单的说&#xff0c;Regex是从字符窗中查找匹配字符串的应用类。通过Regex&am…

软件安装(ubuntu) --Linux基础编程

Ubuntu&#xff1a;一个以桌面应用为主的开源GNU/Linux操作系统 1、在线安装&#xff08;Ubuntu Example&#xff09; 【安装】&#xff1a;sudo apt-get install 安装包的名字&#xff0c;或者&#xff1a;sudo apt install 安装包的名字&#xff08;16.04及以上版本&#xff…

Springboot结合 framework 加载静资源 出现404 问题解决 记录

<!- 在HTML页面加入这样--><#assign ctxrequest.contextPath /> 在引入的静态资源路径上 添加以下内容

studyLink

http://order.csdn.net/myorder/detail?id850343 csdn 转载于:https://www.cnblogs.com/zhujiasheng/p/8010861.html

CCNA的一个综合实验(经典)

【背景描述】 该企业的具体环境如下&#xff1a; 1、企业具有2个办公地点&#xff0c;且相距较远&#xff0c;公司总共大约有200台主机。 2、A办公地点具有的部门较多&#xff0c;例如业务部、财务部、综合部等&#xff0c;为主要的办公场所&#xff0c;因此这部分的交换网络对…

关于EF中批量添加的个人探索

实际的测试代码和数据记录&#xff0c;还有最终的总结都在下面&#xff1a; /// <summary>/// 这种做法&#xff0c;不用了说了&#xff0c;每次遍历都会打开一次db链接&#xff0c;然后执行insert操作&#xff1b;/// </summary>static void CreateBluckInsertDat…

HDOJ 1157 HDU 1157 Who's in the Middle ACM 1157 IN HDU

MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:http://acm.hdu.edu.cn/showproblem.php?pid1157 题目描述:Whos in the MiddleTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2451 Accep…

Keras使用多个GPU并行

model Model(inputs[v_i, v_j], outputsoutput_list) model multi_gpu_model(model,4) model.compile(....) 主要就是第二句话中的 multi_gpu_model函数&#xff0c;会把数据和模型分到多个gpu上执行有个坑&#xff0c;就是整个程序导入keras时要么全部from keras import ...…

使用JackJSON 流式API 创建JSON串【学习记录】

教程网址&#xff1a;Jackson流式API 目标JSON串 原始JSON串 核心代码 思路&#xff1a;先将原始JSON串生成对应的对象&#xff0c;获取到其数据 package com.run.runlpwebdemo.utils;import java.io.IOException; import java.io.StringWriter; import java.util.List;impo…