今天使用sourceTree提交代码的时候,commit之后未submit,直接rebase主分支代码,完了发现自己本地做的修改都没了,且远程没有本地分支.google之后发现有一个简单方法可以恢复到本地commit版本,具体方法如下,在命令行执行:   git reflog # Suppose the old commit was HEAD@{} in the ref loggit reset --hard HEAD@{}   还是太菜了,要学习的东西还有很多,呜呜-…
撸了好多代码,但是突然设计改了(~~o(>_<)o ~~):或者引入个第三方库,后来又发现用不着,想删掉,但文件太多了(比如几百个):那,怎么办呢,都不想了...Git 比人聪明,所以能很方便的帮我们解决问题. 场景一 需要撤销的内容文件属于未跟踪的状态.如下命令产生的场景: mkdir git-tmp cd git-tmp git init echo '第1次输入的内容' > file1.log git status 以上命令产生了file1.log文件,该文件未被执行过git add…
1.触发事件 我有这样一个版本库,里面包含两个学习用的练习项目:BookStore(以下简称BS)和PictureFriend(以下简称PF) 我在更改PF以后,未进行提交,同时又到BS中优化了一下文件夹结构,然后此时我commit,提交备注信息为"添加图友网项目,更改为Maven形式,报错找不到spring监听器,待解决",提交成功,似乎没什么问题. 但是当我在github上看到的情况如下,我知道我没有处理好:   BookStore项目实际上跟这个备注并没有关系,而是Picture…
最近遇到2个具体的问题: 1.我们有个工程里面有几个外部jar包,这几个jar包经常会更新,更新的时候如果是在eclipse中执行的,由于windows文件机制,所以会报错无法覆盖这几个jar包.虽然git pull失败了,但是却出现了一个很严重的问题,就是许多未修改的文件被标记为已修改,另一个同事改的许多文件都变成了空文件.这个问题出现过2次,最后都是以手工reset + 手工合并的方式解决的问题. 2.今天我新增了一部分源码,同时在pom文件中引入了一个我自己的jar包,在commit后进行…
[git的配置] 1.配置用户名和邮箱: 分为全局配置和局部配置 --system 系统配置  --global 全局配置    --local 局部配置 Git读取时:优先从local>global>system git config --global user.name name git config --global user.email email     2.别名的配置 使用git st 代替 git status git config --global alias.st statu…
查看提交历史 然后在此项目中运行 git log,应该会看到下面的输出:   合并commit 信息 我们需要将 2dfbc7e8 和 c4e858b5 合并成一个 commit,那么我们输入如下命令   其中,-i 的参数是不需要合并的 commit 的 hash 值,这里指的是第一条 commit, 接着我们就进入到 vi 的编辑模式   可以看到其中分为两个部分,上方未注释的部分是填写要执行的指令,而下方注释的部分则是指令的提示说明.指令部分中由前方的命令名称.commit hash 和…
代码提交的commit info提个建议,fix的issue是哪个issue?都要有明确的链接.推荐方式:1.建立issue,说明问题的背景和原因.http://git.startdt.net/payment/paycenter/issues2.提交代码的时候commit info引入该issue3.测试验证回归以后close 这个issue这样就可以做到每一次提交都能追根溯源.提交代码的commit info信息是给自己看的,也是给别人看的.内容翔实自然最好,最基本的是一定要让别人看懂你提交的…
原文: http://chris.beams.io/posts/git-commit/ 介绍:为什么好的commit message很重要 你浏览项目commit message的时候或多或少会有些困扰的地方. 例如, 下面是我早前的commit message: $ git log --oneline -5 --author cbeams --before "Fri Mar 26 2009" e5f4b49 Re-adding ConfigurationPostProcessorTe…
使用Xcode提交一个第三方库时,由于包含资源文件,总是提交不了,提示报错:XXX commit is not under version control (1) 网上查了下,得知 xcode对于svn的支持不够好:导致资源文件如图片使用Xcode提交不了. 然后svn 命令提交,之前使用svn命令提交图片的时候,是可以提交的,但是今天就算使用svn命令,还是提交不了: 截图: 后来在commit命令后面加上svn的账户名和密码,才提交成功了: 原文链接:http://www.cnblogs.c…
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309627 Rebase,衍合?变基?唉,我也不知道要怎么翻译合适...变基怪怪的,我擦勒,你才变基呢... 1.Rebase提交 rebase命令允许你编辑你的提交历史,比如你可以把多个提交(commit)联合成一个,可以对它重新排序,跳掉某个提交或者编辑提交信息.这是非常有用的,当你要再推送到远程仓库之前要想重新编辑提交信息.以下举个例子把多个提交联合成一个. [cp…
使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中. Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址. 接下来我们写入缓存,并提交对 hello.php 的所有改动.在首个例子中,我们使用 -m 选项以在命令行中提供提交注释. 现在我们已经记录了快照.如果我们再执行 git status: 以上输出说明我们在最近一次提交之后,没有做任何改动,是一个"working directory clean…
前面的话 使用git commit -am是不是就可以完全不使用git add命令呢?不是 理论 要了解git commit -m与git commit -am的区别,首先要明白它们的定义 字面解释的话,git commit -m用于提交暂存区的文件,git commit -am用于提交跟踪过的文件 [注意]git commit -am可以写成git commit -a -m,但不能写成git commit -m -a 定义中出现了暂存区.跟踪过的文件等术语,如果要理解它们,就需要了解Git的文…
上篇博客聊了<git分支管理之rebase 以及 cherry-pick相关操作>本篇博客我们就以Learning Git中的关卡进行展开.下方列举了LearningGit中的 merge.rebase.reset.revert.cherry-pick 以及交互式rebase相关关卡的操作以及对应的解析.后边在聊交互式rebase操作是,不单单给出了LearningGit中的内容,而且给出了真正的Git分支在交互式rebase操作时的具体案例. learngitbranching的地址为:ht…
1 创建Git资源库,残酷目录信息 创建git资源库的命令: git init –bare 仓库名称 (其中-bare表示的意思是空的库的意思) 进入E:\software\repository\git\itheima28,截图如下: hooks:提交一些脚本文件 info:存放一些个人信息,配置信息 objects:所有数据存放位置 refs:git指针信息,记录了修改了什么等的信息 config:核心的配置信息 description:描述信息 HEAD:存放的分支信息. 2 使用上面创建的…
在使用git之前,我们首先要初始化一个git管理的仓库,这里以博客(blog)为例 git init blog 我们进入目录,执行git status查看git状态,可以看到一个新的git管理的项目目前没有还没有任何提交 我们在这个目录下新建一个index.php的文件,使用touch index.php,然后再通过git status查看状态,在新创建了一个文件后,状态就变了 在git中,文件的状态只有三种(已修改.已暂存.已提交) 已修改 在工作目录修改Git文件 已暂存 对已修改的文件执行…
字面解释的话,git commit -m用于提交暂存区的文件:git commit -am用于提交跟踪过的文件 要理解它们的区别,首先要明白git的文件状态变化周期,如下图所示 工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪.已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区 下面以一个实例说明 在项目文件夹中新增一个文件如'a.txt'时,该文件处于untracked未跟踪状态.未跟踪状态的文件是无…
一.前言 假如你昨晚把本地文件a.html提交到远程库,今早发现还有补充的内容,于是添加了新的内容到a.html,并且还在本地还多添加了“几个文件”,那么怎么使用git来把这些文件一并提交到远程库呢? 二.思考先来想一下: 1. a.html已经提交过了但是又修改了,“几个文件”还没有提交过: 2. 增加的内容都没有提交到暂存区: 3. 在当前目录查看一下仓库的情况,看看哪些修改了,哪些未提交等: 三.梳理根据想到的内容梳理下: 1. 查看仓库的状态 “a.html"为modified , “几…
某同事执行git commit 时太兴奋,执行了 git commit --amend 慌了,不敢编辑上一个commit的description了,直接选择了wq退出,然而git毕竟强大,默认将改动合并提交并覆盖了上一个commit生成了一个新的commit id,这下更慌了,上一个commit id在git log里没了,没了,没了 此时只有两个字,奔溃 好在git有撤销方法,下面的代码拿来举例. 当前代码仓有如下文件: $ ll total 4 -rw-r--r-- 1 ****** 105…
日常 git 管理代码的时候,经常因为因为一些小的代码改动而进行一次 git commit , 但是这样造成的后果就是小的 git commit 很多很杂. 今天特意的研究了一些 git commit 的合并方法. 首先,使用 git log 看 log 信息. root@aplex:/home/cmi_at101/test/filesystem_test/cmi_at101_filesystem# git log commit 93ba40a42595edcbdb5adbab33d8c2dc5…
公司使用git+gerrit+jenkins进行持续集成实践,其中gerrit用来进行Code Review.另外我们自己研发了一套敏捷项目管理系统TPM(TeamPlus Management),用来管理开发任务和电子看板.此时有一个需求,希望开发人员提交的代码能够关联到TPM上的开发任务,这样就能实现需求与代码的关联,实现 需求->backlog->userstory->task->code->build->test->deploy->prod 的全流程…
https://www.yuque.com/fe9/basic/nruxq8#6c228def 制定一个 git commit 信息的提交规范是开发团队工作流必不可少的环节.试想一下,如果查看主分支上的历史库也就是你查看 git log 的时候,打印出来的信息杂乱无章的话,如果代码遇到问题,可能需要很大的精力与成本来查找到导致问题的代码提交,所以团队需要制定规范来引导成员编写规范的 commit 信息. 接下来的 commit 信息规范参考了 angularjs 团队的开发者指引与笔者的工作团队…
原文地址: http://xiguada.org/change-git-commit-message   Git cimmit信息push后,如何修改,amend可以修改最后一次commit信息,但对于历史提交信息,需要使用rebase命令.   1 比如要修改的commit是倒数第三条,使用下述命令: git rebase -i HEAD~3 2 把pick改为edit 3 然后 :wq 出现如下信息: 4 执行 git commit --amend 修改commit信息 5 退出保存 :wq…
Git merge是用来合并两个分支的. git merge b      # 将b分支合并到当前分支 同样 git rebase b,也是把 b分支合并到当前分支 原理 如下: 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin 假设远程分支"origin"已经有了2个提交,如图 现在我们在这个分支做一些修改,然后生成两个提交(commit). $ vi f…
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”. 所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit pwd命令用于显示当前目录.在我的Mac上,这个仓库位于/Users/m…
在开发过程中我们一般都会用到git管理代码,在git commit提交代码时我们一般对git commit message随便写点简单的描述,可是随着项目参与人数的增多,发现提交的commit记录越来越杂乱,不便查阅,在网上找了下解决方案,总结一下方便在公司项目中运用. commit message 格式 目前大家比较认可的是Angular团队的提交规范,很多工具也是基于此规范开发的.该提交规范格式如下: <type>(<scope>): <subject> <B…
为什么要美化commit历史? 答:假如一个分支的多次意义相近的 commit,会把整个提交历史搞得很混乱, 此时可以将几个commit 合并为一个 commit,以美化整个 commit 历史. 怎么操作? 答: ①git log 看一下历史提交. ② git rebase -i HEAD~5 对最近的 5 个 commit 进行 rebase 操作(假如你想合并这5个commit),出现下面的编辑页面,改pick为fixup . ③git rebase --continue 继续. ④ gi…
本地有多个git账号时,容易发生忘记设置项目默认账号,最后以全局账号提交的情况,其实对代码本身并无影响,只是提交记录里显示的是别的名字稍显别扭. 举个例子:  查看提交日志,假设以a(a@email.com)提交了三次,发现提交用户错了,应该用b用户提交: $ git log# 输出如下commit 3 (HEAD -> branch1)Author: a <a@email.com>Date: Thu Nov 22 16:22:59 2018 +0800 commit 3commit 2…
在git使用中要如何取消commit但是还未push的操作? 通常,我们对修改的文件会先git add .,然后git commmit -m "注释",但是如果commit错了,想要取消commit而且还要保留已经add的文件,那么应该怎么做呢? 可以使用这个命令来取消commit: git reset --soft HEAD^ 这样就会回到刚刚add之后的状态了(HEAD^是上一个版本的意思,如果要回退到前n个,那么就是HEAD~n) 关于git reset的一些参数如下: --so…
git commit中输入message的几种方式 - 简书 https://www.jianshu.com/p/ad461b99e860 在所有的git教程里,git commit肯定是一开始就会提到的命令.一般情况下每个commit都会有一段commit log message.message可能有一行内容,可能有多行内容,中间可能会有空白行.在第一个空白行前面的部分称为subject,之后的部分称为body.subject和body在git log或者git show的输出format中分…
工具介绍 commitizen/cz-cli是一个规范git commit的工具,使用它代替git commit能够方便有效地写好提交的log,使得团队项目的版本信息更清晰. 安装 (全局安装) npm install -g commitizen cz-conventional-changelog linux/wsl需要添加一句: echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc 使用 在本地gi…