在push之前有时候会不放心是不是忘记加某些文件,或者是不是多删了个什么东西,这时候希望能够看看上次commit都做了些什么. 一开始想到的是用Git diff,但是git diff用于当前修改尚未commit的时候较为方便,一旦commit后,需要指定上次节点的名称(一个hash值),不方便.这种时候用git log更合适,因为commit的内容会以log来记录. 下面记录几个常用的情境以及对应的命令. 仅仅想看最近谁有提交,以及提交的描述 对应命令 git log 显示Sample comm…
撸了好多代码,但是突然设计改了(~~o(>_<)o ~~):或者引入个第三方库,后来又发现用不着,想删掉,但文件太多了(比如几百个):那,怎么办呢,都不想了...Git 比人聪明,所以能很方便的帮我们解决问题. 场景一 需要撤销的内容文件属于未跟踪的状态.如下命令产生的场景: mkdir git-tmp cd git-tmp git init echo '第1次输入的内容' > file1.log git status 以上命令产生了file1.log文件,该文件未被执行过git add…
提交修改 $ git add test.txt $ git commit -m "提交test.txt文件" 修改注释说明 如果需要修改commit的注释说明,则执行以下命令: $ git commit --amend 然后会进入git bash的vim编辑器,如果编辑器不可用的话,按下字母c即可进入编辑模式. 编辑完成 编辑完成后,按下ESC即可关闭模式,然后连续按两次大写的Z,即可保存并退出vim编辑器. 重新提交 $ git commit -m "修改test.txt文…
一.为什么需要合并多个 commit 呢?   有时候,我们开发一个功能. 修修补补 commit 了很多次,过多的 commit 会显得很复杂. 不够直观,不能比较清晰查看那些 commit 是对应的那个功能. 所以,在这种情况下.我们需要整理一下 commit 的记录,让我们更好的管理提交记录.     二.具体合并多个 commit 的流程.   1.development 分支有四次 commit ,然后我准备合并 "add a.php" 和 "add b.php&q…
在使用git的过程中,我们经常需要查看某次commit修改了哪些内容,与之相关的命令就是: git log git show 首先,需要通过git log打印所有commit hashID,之后的git show都是基于commit hashID输出的. 1.查看最新的commit git show 2.查看指定commit hashID的所有修改: git show commitId---------------------…
我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed version control system. Git is free software. 现在,运行git status命令看看结果: $ git status On branch master Changes not staged for commit: (use "git add <file>...…
一.我是在什么场景下会用到该Git操作 当某同事,将开发分支dev2合并到开发分支dev1时(两个不同的功能,不能合并),其他同事不知情的情况下,继续在dev1上开发并提交了代码. 后面发现了该合并,需要回退到合并前的状态,同时,合并后的提交也需要保留.那么就需要合并后面commit的内容到dev1分支 二.如何进行Git操作 使用如下命令就可以了 git cherry-pick commit_id *通过 git reflog可以查看历史提交的commit_id 比如:dev1&dev2是合并…
快速重命名文件 $ git mv README.md readme.md 使用git mv命令后直接commit即可,不再需要进行add或rm操作 查看版本历史 所有的参数都可以进行组合使用的,比如我要看前两天简洁的信息,那么使用git log --oneline -n2就可以了,这里也只说 一些用的多的参数,具体的可以使用--help命令进行查看. 查看所有信息 $ git log 查看简洁信息 $ git log --oneline 查看前几条提交历史 $ git log -n2 查看所有分…
相关的命令: git log:查看所有的commit提交记录: git show: 查看提交的详情: 首先,需要通过git log打印所有commit记录,例如: 1.查看最新的commit:git show 2.查看指定commit的所有修改:git show commitId 3.查看某次commit中具体某个文件的修改:git show commitId fileName…
目录 git rebase逻辑 git editor的修改 处理git-rebase-todo文件 Python实现 当我们有多个commit或者从开源处拿到多个commit时,想合成一个commit,并保留每个commit的message时,大家都知道用"git rebase -i"可以解决,但这种方式需要手动进行操作,假如我们要处理的比较多,就想要自动化来处理,下面介绍下怎么自动化处理. git rebase逻辑 当我们"git rebase -i"后,git在…
  git rebase 使用总结: 使用git rebase 修改以前已经提交的内容 比如要修改之前的commit的 hashcode为:187f869c9d54c9297d6b0b1b4ff47d2ec781a55e 1,git rebase 187f869c9d54c9297d6b0b1b4ff47d2ec781a55e^ --interactive --退回到要修改的commit的前一个点上,执行后,git会调用默认的vi编辑器显示commit到最新commit的所有记录,把我们要修改的…
这三个名字可以简单理解为文件在本地仓库存在的三种不同的位置. 如下,是做commit提交两段提交过程,工作区(working tree),暂存区(index)和 branch(commit). working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了. index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就…
Git常用命令 1. 命令git init把这个目录变成Git可以管理的仓库: 2. 命令git commit把文件提交到仓库 这里需要注意的是,Git只能跟踪文本文件的改动,如txt文件,网页,所有的程序代码等等,如在第5行加了一个单词“Linux”.而图片.视频是二进制文件,没办法跟踪文件的变化,只能把二进制文件每次改动穿起来,也就是只知道图片从100K改成了200K,到底改了啥,没办法知道. 另外还需要注意的是,不要使用Windows自带的记事本编辑,最好使用Notepad++代替. 现在…
本文转载于:http://blog.csdn.net/crylearner/article/details/7685158 代码提交 代码提交一般有五个步骤: 1.查看目前代码的修改状态 2.查看代码修改内容 3.暂存需要提交的文件 4.提交已暂存的文件 5.同步到服务器 1.     查看目前代码的修改状态 提交代码之前,首先应该检查目前所做的修改,运行Git status命令 a)        已暂存 (changes to be committed) new file //表示新建文件…
在开发过程中一般会用到Git进行版本管理,创建查看分支并与远程仓库交互是非常常见的操作. branch分支 是指在开发主线中分离出来的,做进一步开发而不影响到原来的主线. Git存储的不是一系列的更改集,而是一系列快照,当你执行一次commit时,git存储一个commit对象,它包含一个指针指向你当前需要提交的内容的快照. master分支是在git init命令运行时默认创建一个分支,并命名为master. 查看分支 git branch // 列出本地已经存在的分支,当前分支会用 * 标记…
修改最近一条提交的消息 git commit --amend 进入vim模式 按字母 o 或者 insert键 开始修改内容 按 esc 推出编辑,最常用的是输入":q"直接退出,输入":wq"进行保存并退出. 修改过去若干条 Commit git log 查看提交记录,可以看到commit记录 包括commitId,-i后面的参数为需要修改的commit前一次 对应的 commitId git rebase -i 8876a66df1ea4a7e911c271b2…
git rebase 合并多个commit 方法 在开发过程中,有时一个任务会分几次commit提交,这样可能对于有些分支要cherry pick时会比较麻烦,这是我们可以通过git rebase 将几个commit合并为一个commit,再推送到远端 git rebase -i 这里指的是通过交互的手段执行git rebase, 也是合并commits 的好方法 例子 假设当前git日志文件内容是这样 ➜ test git:(master) git log --oneline bb44232…
git如何回滚当前修改的内容? 1.打开git gui,在工具栏上点击 commit ,选择 Revert Changes,  这里可以回滚单个文件: 2.一键回滚所有修改: 打开git gui,在工具栏上点击 Branch, 然后点击 Reset... 即可. 如果在inteligi idea中,在local changes下直接右键该文件,revert即可.…
1. 执行git log -3 --graph A,查看A分支下的commit: 注:commit 后面的hash值代表某个commit,这里把”82f1fb7138c5860cc775b4b5ea71c5d19c4e6497“这个commit提交到B. 2. 执行git checkout B,切换到B分支; 3. 执行 git cherry-pick 82f1fb7138c5860cc775b4b5ea71c5d19c4e6497,该commit便被提交到了B分支; 4. git push /…
Git: 教你如何在Commit时有话可说   不知道大家有没有观察过那些在Github上Star数位居前列的项目,它们无一例外的都拥有完善的文档体系和高覆盖的测试用例.要做到完善没有规范肯定是不行的,代码要有代码的规范,协作要有协作的规范.我们今天要说的主题就是关于Git中记录Commit Message的参考规范.先来看两张图,一张来自国际知名项目,一张是国内某知名项目(笑). 国际知名项目AngularJS 国内知名项目MingGeJS…
1. 查看标签 列出现有标签,使用如下命令: xiaosi@yoona:~/code/learningnotes$ git tag r-000000-000000-cm.cm v1.0.0 v1.0.1 我们可以用特定的搜索模式列出符合条件的标签.如果只对1.0系列的版本感兴趣,可以运行如下命令: xiaosi@yoona:~/code/learningnotes$ git tag -l 'v1.0.*' v1.0.0 v1.0.1 2. 创建标签 Git 使用的标签有两种类型:轻量级的(lig…
git 把dev部分提交过的内容合并到master $ git reflog a6de5cc HEAD@{}: checkout: moving from wf_dev to master 303aaef HEAD@{}: checkout: moving from master to wf_dev a6de5cc HEAD@{}: pull origin master: Merge made by the 'recursive' strategy. 602559e HEAD@{}: commi…
 随心所欲生成git仓库随意一段commit的专用patch应用小实践 我们在开发中.时不时的可能要去做一个patch给你的下线,或者你的合作者.在git管理中,我们知道有git format-patch命令,那怎么使用呢? 笔者以下就以实际样例来记录一下这个过程: /*****************************************************************************************************/声明:本博内容均由http…
当我们修改完代码,提交了一个 commit,然后发现改错了,怎么修正?下面分两种情况来讨论:修正最近一次提交,和修正历史多个提交. 修正最近一次提交 如果发现刚刚提交的内容有错误,当场再修改一下再提交一个新 commit 不就可以么?可以是可以,不过还有一个更加优雅和简单的解决方法: git commit --amend "amend" 是"修正"的意思.在提交时,如果加上 --amend 参数,Git 不会在当前 commit 上增加 commit,而是会把当前…
有的时候,改完代码提交 commit 后发现写得实在太烂了,连自己的都看不下去,与其修改它还不如丢弃重写.怎么操作呢? 使用 reset 撤销 如果是最近提交的 commit 要丢弃重写可以用 reset 来操作.比如你刚写了一个 commit: 写完回头看了看,你觉得不行这得重新写.那么你可以用 reset --hard 来撤销这条 commit. git reset --hard HEAD^ HEAD^ 表示往回数一个位置的 commit`,上篇刚说过. 因为你要撤销最新的一个 commit…
这个问题纠结了很多时间,感谢苏打先森@Sudamod的开源项目. 大家知道CM13是没有来去点归属地的,就算有那也是google,对于中国人不适用,所以这里把方法贡献出来. 1.与通话有关的app Dialer InCallUI Contact Telcom 2.与app有关的开源地址 https://github.com/SudaMod/android_packages_apps_Dialer/tree/sm-2.0 https://github.com/SudaMod/android_pac…
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------------------------linux 如何显示一个文件的某几行(中间几行) 从第3000行开始,显示1000行.即显示3000~3999行cat filename | tail -n +3000 | head -n 1000 显示1000行到3000行cat filename| head -…
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------------------------linux 如何显示一个文件的某几行(中间几行) 从第3000行开始,显示1000行.即显示3000~3999行cat filename | tail -n +3000 | head -n 1000 显示1000行到3000行cat filename| head -…
首先,重点重复重复再重复: /** * 使用Java API操作HDFS文件系统 * 关键点: * 1)创建 Configuration * 2)获取 FileSystem * 3)...剩下的就是 HDFS API的操作了*/ 回顾:https://www.cnblogs.com/Liuyt-61/p/10737466.html 先上代码(注意包不要导错了): public class HDFSApp { public static final String HDFS_PATH = "hdfs…
linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------------------------linux 如何显示一个文件的某几行(中间几行) 从第3000行开始,显示1000行.即显示3000~3999行cat filename | tail -n +3000 | head -n 1000 显示1000行到3000行cat filename| head -…