git-svn常使用命令
git svn clone https://192.168.1.254/svn/xxx -T trunk -b branches -t tags --prefix=svn/
git svn rebase
git svn dcommit
git stash show
git stash pop
git checkout -b 新版本 master(创建一个版本)
git reset --hard HEAD
git rebase --abort (回到rebase执行之前的状态)
git config --list
git merge master
git remote add origin ssh://root@192.168.1.196/mongodb/githome/ktsg.git
git fetch origin devel:devel (本地devel分支 上传到远端 devel分支 无则新建)
git push origin devel
git branch --set-upstream-to=origin/devel devel (将本地的devel分支 与远端的origin/devel分支建立关系)
git push -u origin devel (与-set-upstream-to相似 ,等价于 git push origin devel + git branch --set-upstream-to=origin/devel devel)
git log --pretty=oneline 文件名 (列出文件的所有改动历史)
克隆 指定的远程分支(只克隆远程仓库的一个指定分支,而不是整个仓库分支)
git remote add -t dev -f origin url
git checkout dev
开始一个无历史的新分支(无之前分支的历史纪录)
git checkout --orphan dev
使用rebase推送而非merge(减少非必要的merge)
git pull --rebase
您也可以将某条branch配置为总是使用rebase推送:
git config branch.dev.rebase true
检测 你的分支的改变是否为其它分支的一部分(+ 指示没有出现在所给分支中,反之,- 就表示出现在了所给的分支中了)
git cherry -v dev
输出两个提交间的改变(如果你需要输出某两个提交间的改变时, 实际上就是把两个版本间的差异文件导入到latest.zip)
git archive -o ../latest.zip 新日志 $(git diff --name-only 老日志 新日志)
输出最后一次提交的改变(输出最近提交的修改内容到一个zip文件中,原理同上)
git archive -o ../latest.zip HEAD $(git diff --name-only HEAD^)
无切换分支的从其它分支Checkout文件
git checkout 当前分支 -- 要checkout的分支
git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作
git cherry-pick commit_id(其他分支的日志id)
git config --global push.default simple
没有指定分支时,只有当前分支会被 push 到你使用 git pull 获取的代码
git config --global push.default matching
如果设置为matching的话,会push所有改动过的branch到相应的repository的ref中,相对来说安全性差了点
git log --stat(查看提交文件的改动情况)
-p 按补丁格式显示每个更新之间的差异。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。