用 go 实现的 git 快速提交代码的小工具。 package main /* 这是一个用 go 实现的 git 快速提交代码的小工具 将该代码编译成可执行文件,然后加入到系统环境变量中去 然后就可以直接使用类似: g '这是一个测试' 快速的提交代码了 */ import ( "fmt" "os" "os/exec" "strings" ) func main() { argLen := len(os.Args) file := "." if argLen < 2 { fmt.Println("必须输入提交说明!") os.Exit(0) } else if arg......
git钩子是一组脚本,这些脚本对应着git仓库中的特定事件,每一次事件发生时,钩子会被触发。这允许你可以定制化git的内部行为,在开发周期中的关键点上触发执行定制化的脚本。 概念概述 所有的git钩子都是git在某个特定事件发生时会执行的脚本。所以其实非常容易安装并配置。 钩子可以配置在本地或者服务端仓库,他们也只会在某些特定动作执行时被触发。我们会在后面的部分讨论钩子的类别。本节的内容可以应用于本地或者服务端......
git 常用快捷键设置。 vim ~/.gitconfig 在 alias 一节中加入如下设置: st = status ci = commit co = checkout br = branch lg = log --date=format:'%Y-%m-%d %H:%M:%S' --color --pretty=format:'%Cred%h%Creset %Cgreen%ad%Creset %s %C(bold blue)<%an>%Creset' --abbrev-commit ls = !"for k in `git branch|perl -pe s/^..//`;do echo `git show --pretty=format:\"%Cgreen%ci %Cblue%cr%Creset\" $k|head -n 1`\\\t$......
问题: 之前代码提交后,有中文备注,但是在使用git log查看代码历史记录的时候发现显示乱码,如下: 后查询相关资料,现将解决办法总结如下: 1、运行git Bash窗口,在该窗口导航条(即最上面)右键,选择Options−>Text,找到下面两处 Locale:选择 zh_CN Charector set:选择 UTF-8 如下图: 然后保存。 2、到git Bash命令窗口输入如下设置命令语句 git config --global i18n.commitencoding utf-8 --注释:该......
git 查看分支创建时间。 git reflog show --date=iso 分支名称 可以查看到指定分支的历次更改记录,最下面一条的时间即是分支创建时间。 如果后面不带分支名,则显示的是本地git的所有操作流程记录。 如果觉得命令太长输入不方便,可以对其设置 alias,方便日常操作,修改 git 配置文件: vim ~/.gitconfig 然后在 alias 节下面输入: ld = reflog show --date=format:'%Y-%m-%d %H:%M:%S' 如果不存在 ~/.gitconfig,则......
git 设置代理方法总结。 临时指定代理 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --config "http.proxy=127.0.0.1:1080" 或者 git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -c "http.proxy=127.0.0.1:1080" 使用命令永久设定socks或者http代理 socks代理: git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global https.pr......
git比较两个分支的文件和提价,例如有两个分支 master 和 dev 1. 比较分支文件 git diff master dev --stat 显示出所有有差异的文件列表 git diff master dev -- 文件名(含路径) 显示指定文件的详细差异,注意路径前需要前后带空格的双分隔号--间隔 git diff master dev 显示出所有有差异的文件的详细差异 2. 比较分支提交 git log ^master dev git log dev ^master git log master..dev git log dev --not master 以上三个等......
比如我们有 2 个分支:master, dev,现在想查看这两个 branch 的区别,有以下几种方式: undefined 1.查看 dev 有,而 master 中没有的: 1.查看 dev 有,而 master 中没有的: git log dev ^master 同理查看 master 中有,而 dev 中没有的内容: git log master ^dev 2.查看 dev 中比 master 中多提交了哪些内容 git log master..dev 3.不知道谁提交的多谁提交的少,单纯想知道有什么不一样: git log dev...master ......
git删除未跟踪文件。 # 删除 untracked files git clean -f # 连 untracked 的目录也一起删掉 git clean -fd # 连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的) git clean -xfd # 在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删 git clean -nxfd git clean -nf git clean -nfd
在git项目目录内,如果通过chmod命令改变了文件的属性,这时在输入 git status 命令后,该文件会显示为被修改,即使没有修改该文件内容,但是源代码通常只关心文本内容,因此chmod产生的变化应该忽略,所以设置一下: 切到源码的根目录下,执行如下命令: git config --add core.filemode false 更多更详细的解析: 在当前git仓库下执行: git config --add core.filemode false git config --list 如果想对全局git库生效......
由于之前添加的是http协议的github仓库地址,因此每次push 或者pull都需要密码,所以,将其修改为ssh协议的,这样,就不需要这么麻烦了。记录一下本次操作的流程: git remote rm origin git remote add origin ssh://root@158.0.1.169/home/www/tigerOa.git git branch --set-upstream-to=origin/master
打开终端,进入git项目目录,增加一个别名叫 git lg 的命令: git config --global alias.lg "log --date=format:'%Y-%m-%d %H:%M:%S' --color --pretty=format:'%Cred%h%Creset %Cgreen%ad%Creset %s %C(bold blue)<%an>%Creset' --abbrev-commit" 完毕之后就可以通过命令 git lg 查看简化的日志输出了。
客户端正常生成git的秘钥方法如下: ssh-keygen -t rsa 该命令执行后会在 ~/.ssh/ 目录下生成 id_rsa 和 id_rsa.pub 文件。 然后把 id_rsa.pub 文件的内容拷贝到服务器的 ~/.ssh/authorized_keys 文件中去(追加方式)。 这样客户端通过 ssh 方式链接服务器就不用再每次都要输入密码了。 但是如果非正常情况下,比如客户端已经存在一个ssh链接了,比如git相关的配置,已经存在了一个git的配置。如果你再通过上面的流程操作去配......
问题描述: 当我们集体进行项目时,将自定义分支push到主分支master之后,如何删除远程的自定义分支呢 问题解决: (1)使用命令git branch -a 查看所有分支 注: 其中,remote/origin/master表示的是远程分支 (2)删除远程分支 使用命令 git push origin --delete test 可以删除远程分支 test 再次使用命令 git branch -a 可以发现,远程分支 test 已经被删除。 (3)删除本地分支 使用命令 git bran......
之前写过一篇文章:git一步完成文件的 add, commit 和 push功能的命令 这里再对git操作中经常需要做的操作做一个简化操作。 我们在需要开发一个新功能或者解决一个bug的时候,常用的操作的是切换到master分支,更新一下master分支代码,然后基于该分支开出一个新分支作为开发新功能或解决bug的开发分支,操作命令如下: git checkout master git pull git checkout -b bugfix-12032 下面这个方法就是将如上的命令简化。 (1......
git删除记录中间的某个commit。 方法一: 1.git log获取commit信息列表 2.git rebase -i commit-id commit-id 为要删除的commit的下一个commit号 3.编辑文件,将要删除的commit之前的单词改为drop 4.保存文件退出大功告成 5.git log查看 git push origin master –force 方法二: git revert commit_id
1.初始化 git init #初始化仓库,新建一个git仓库(新建了一个隐藏目录.git) 把远程仓库克隆到本地 git clone https://github.com/010test/phpcrontab.git #将在当前目录下创建phpcrontab目录 git clone https://github.com/010test/phpcrontab.git /home/yhm/test #将代码克隆到/home/yhm/test目录内 列出项目所有配置 git config --list 列出远程仓库别名 git remote 列出远程仓库别名对应的实际url git remote -v ......
记录一下通过git命令将git log日志导出为csv格式(excel格式)文件的方法。 进入项目的git base界面; 执行命令: git log --date=format:'%Y-%m-%d %H:%M:%S' --pretty=format:'"%h","%an","%ad","%s"' > ~/桌面/log.csv 输出字段(%号参数)可自定义,详见: https://git-scm.com/docs/pretty-formats csv格式可在execl中打开,保存为xls格式文件。
在项目中使用git管理代码后,有些时候会创建很多不同名称的分支,以此区分各个分支代码功能。 而随着代码的合并,以前的分支就可能不再需要保存了,所以就要对没有用的分支进行删除,包括紧急回滚时从中抽取某一个版本记录所创建的临时分支。 这时候就可以使用下面的命令: 1.列出本地分支: git branch 2.删除本地分支: git branch -D BranchName 其中 -D 也可以是 --delete,如: git branch --delete BranchName 3.......
1. git本地版本回退 git reset --hard commit_id(可用 git log –oneline 查看) 2. git远程版本回退 git push origin HEAD --force #远程提交回退 下面的命令也可以实现远程版本回退 git reset --hard HEAD~1 git push --force 3. git reverse和git reset的区别 git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本......
使用git做代码提交每次都要不厌其烦的三步走: git add include/mysql.php git commit -m "增加XXX接口文件,实现XXX功能" git push 时间长了,发现大部分时间都浪费在敲这几个命令上了,今天自己写了一个方法,直接一条命令实现上述三步的功能。具体实现如下: vim ~/.bashrc 在该文件中增加如下函数: function g() { log=$1 files=$2 if [ ! -n "$log" ]; then echo "必须输入提交说明" retur......
git log 默认的时间显方式是: Date: Mon Oct 20 17:26:23 2014 月份用英文缩写显示,看的不是很习惯。 于是根据自己习惯改成如下显示方式: Date: 2014-10-21 14:55:24 +0800 这样就比较方便看了,方法很简单,一条命令。 在终端直接执行: git config log.date iso 如上命令还会带上一个 +0800 的小尾巴,彻底格式化成比较友好的格式,在终端直接执行: git config log.date format:'%Y-%m-%d %H:%M:%S' 至此......
git 查看最近或某一次提交修改的文件列表相关命令整理。 git log --name-status 每次修改的文件列表, 显示状态 git log --name-only 每次修改的文件列表 git log --stat 每次修改的文件列表, 及文件修改的统计 git whatchanged 每次修改的文件列表 git whatchanged --stat 每次修改的文件列表, 及文件修改的统计 git show 显示最后一次的文件改变的具体内容 git show -5 显示最后 5 次的文件改变的具体内容 git show commitid 显......
工作上经常需要确定某一个提交commitid存在于哪些分支branch上以便于排查问题,特记录一下。 git命令如下: git branch -r --contains commitid
如何在终端实时的展示当前所处的git分支?这里主要是在linux的shell中的PS1, PS2,PS3, PS4这些环境变量中动手脚达到这个目的,现在记录一下操作过程备忘。 实际效果如下图: 先来说说linux shell中的PS1,PS2,PS3,PS4 这几个环境变量。 注意:以下操作都是在 ~/.bashrc 文件。 PS1表示的默认交互提示,在ubuntu-12.04中的默认值是 "\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$" 也就是我们通......
这里简要记录一下git服务器实现web代码自动部署的方法。 1、git机制简要介绍 git使用的是代码仓库,git服务端有仓库,称为远端仓库,我们clone下来的,本地也有一个仓库称为本地仓库。我们commit的时候是把代码提交到了本地仓库,push时是把代码提交到了远端仓库,pull的时候是把代码从远端仓库下载到本地仓库。 代码仓库对代码的存储使用了版本指针,每个提交的版本都对应一个HEAD指针,当前版本指针随着代码的提交一直改变......
本篇文章简要记录一下在linux centos 6.5的环境下搭建git服务器的步骤,注意前提是你的环境已经安装好了git软件。 如果需要安装git软件,请参考本站文章: linux centos 编译安装git-2.9.3 第一步:创建git用户组和用户(已经存在的可以略过此步骤) groupadd git #添加git用户组 useradd -g git git #添加git用户,并将该用户添加到git用户组 第二步:创建项目仓库 cd /home/git # 打开git用户目录 git init --bare phpern......
本篇文章简要记录一下在linux centos 6.5 环境下安装git 2.9.3版本的过程。 一、git-2.9.3下载: https://www.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz 二、解压安装 tar zvxf git-2.9.3.tar.gz # 解压 cd git-2.9.3 #打开 ./configure --prefix=/usr/local/git # 默认会安装在 /usr/local/bin,/usr/local/lib make make install #安装完成 一般编译安装过程都不会太顺利,本次安装过程就报了如下两个错误: 出......
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。 正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。 这里假设要忽略已被纳入版本管理中的 /home/www/phpernote/config.php 文件,则执行命令: git update-index --assume-unchanged /home/www/phpernote/config.php 然后在.gitignore文件里添加要忽略的文件或文件夹就行了。 注意:......
本篇文章记录几个关于git的代码比对,查看文件的修改历史相关命令,在解决冲突或排错的过程中还是很有用的。 (1)git log 列出所有文件的改动历史 git log 具体的文件名 列出具体的某个文件的改动历史 git log --pretty=oneline 列出所有文件的改动历史并以一行结果显示 git log --pretty=oneline 具体的文件名 列出具体的某个文件的改动历史并以一行结果显示 git log --author=用户名 列出某个用......