yjiang's cake

git-svn 解决历史冲突

在执行git svn rebase时又出现冲突,这个时候,只需要手工合并掉冲突,并重新add一下:

  1. git add .

然后,再执行:

  1. git rebase --continue

如果报告说没有修改内容,则换成执行:

  1. git rebase --skip

完成rebase过程,这时就可以git svn dcommit了。

git log

git log xxxx.... files 		//显示commit号xxxx以后的files文件夹下的提交
git log --stat 			//显示在每个提交(commit)中哪些文件被修改了, 分别添加或删除了多少行
git log --pretty		//按要求格式化日志	example:	git log --pretty=online

git log --pretty=format:'%h %an %s'    //格式化log显示
选项    说明
%H      提交对象(commit)的完整哈希字串
%h      提交对象的简短哈希字串
%T      树对象(tree)的完整哈希字串
%t      树对象的简短哈希字串
%P      父对象(parent)的完整哈希字串
%p      父对象的简短哈希字串
%an     作者(author)的名字
%ae     作者的电子邮件地址
%ad     作者修订日期(可以用 -date= 选项定制格式)
%ar     作者修订日期,按多久以前的方式显示
%cn     提交者(committer)的名字
%ce     提交者的电子邮件地址
%cd     提交日期
%cr     提交日期,按多久以前的方式显示
%s      提交说明

常用GIT命令

git fetch //获取更新

git rebase
git rebase -am 'xx'
git rebase --abort
git rebase --continue
git rebase --amend
git rebase -i HEAD~n    //合并最近n个commit

git log ..origin/master //对比本地与远端仓储的日志差异
git log origin/master.. //对比远端与本地仓储的日志差异
git log -p
git reflog

git status //查看文件状态

git merge

git revert

git reset --hard //重置本地修改
git reset --hard HEAD~n //回退到倒数第n个版本

git push origin:master
git push origin:sandbox/yjiang/xxx //push本地版本到一个自己的临时分支
git push origin:sandbox/yjiang/xxx -f //强制覆盖临时分支
git push origin :xxx                  //删除一个分支xxx

git checkout xxx //切换到一个新分支xxx
git checkout xxx_file //重置本地xxx_file这个文件

git branch -D xxx //删除xxx分支
git cherry-pick <commit id> //从另一个分支把<commit id>的提交合并到当前分支

github翻墙

晴空霹雳啊,github被封,一夜间中国IT回到了文革时期;

大中华又一次用实际行动让国人明白了科学上网的重要性。

应对:proxychains,完美的终端代理解决方案。

安装:
sudo apt-get install proxychains

配置:
配置文件位于 /etc/proxychains.conf
修改/etc/proxychains.conf
最下面添加 sock5 127.0.0.1 9999

使用:
首先要有一个ssh代理,本机挂好SSH代理,然后
#proxychains git push

于是乎~~~

proxychains还支持http代理,还可用于SSH代理登录,wget等等,实乃大天朝求生必备工具!

http        ***.***.***.*** 808
socks5   ***.***.***.*** 1080

git ignore

忽略文件默认为当前目录的.gitignore

也可以通过修改全局配置git-config的excludesfile指定全局忽略文件。

$: git config --global core.excludesfile ~/.gitignore

养成一开始就设置好.gitignore的好习惯,

.gitignore的语法

  • #为注释行,空行不匹配任何文件,这两个特征可以使.gitignore文件可读性强一些。
  • 通过!取反。
  • 斜杆/结尾的字符,被当做文件夹处理,文件夹下的所有文件将被忽略。
  • 除去以上三种情况,其他时候使用标准的glob模式匹配。

glob语法

* [ab09] ? [0-9a-zA-Z] \
匹配任意字符 匹配多种可能 匹配单个字符 匹配一个范围 转义字符

Copyright © 2016 yjiang's cake

返回顶部