下载和提交代码:
===========================
git clone URL
git fetch --all && git reset --hard origin/master
git checkout master
# 项目开发使用 git checkout -b master origin
git pull
git checkout dev (first :git checkout -b dev )
git merge master
git status
git add utils4IP.sh
git commit ----通过eclipse 提交
git push origin dev:feature/dev
git push origin dev:feature/dev
----通过 bitbucket 进行 pull request
===========================
举例:
Git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:
1. 找一个干净目录,假设是git_work
2. cd git_work
3. git clone http://myrepo.xxx.com/project/git_work.git ,这样在git_work目录下得到一个project子目录
4. cd project
5. git branch -a,列出所有分支名称如下:
remotes/origin/dev
remotes/origin/release
6. git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
7. git checkout -b release origin/release,作用参见上一步解释
8. git checkout dev,切换回dev分支,并开始开发。
===========================
git 统计插件:Awesome Graphs for Stash http://www.360doc.com/content/14/0929/11/10058718_413198911.shtml
===========================
git 代码分析统计:
代码分析人员提交名单:git log --pretty='%aN' | sort -u | wc -l
$
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
http://blog.sina.com.cn/s/blog_7bbae8bd0102vv8p.html
http://blog.youkuaiyun.com/jspamd/article/details/51908456
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
$ git log --pretty=format:%ae | awk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }' | sort -u -n -r | head -n 5
$ git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -
--shortstat
$ git log --author="wangguoqing@nationsky.com" --pretty=tformat: --numstat --since ==2016-01-01 --until=2017-01-01 | awk '{ add += $1 ; subs += $2 ; loc += $1 + $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -
$ git log --author="wangguoqing@nationsky.com" --pretty=tformat: --numstat --since ==2017-05-10 --until=2017-05-15 | awk '{ add += $1 ; subs += $2 ; loc += $1 + $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -
如果要查看 Git 仓库中,2008 年 10 月期间,Junio Hamano 提交的但未合并的测试脚本(位于项目的 t/ 目录下的文件),可以用下面的查询命令:
$ git log --pretty="%h - %s" --author=gitster --since="2008-10-01" \
--before="2008-11-01" --no-merges -- t/
$ git log --pretty="%h - %s" --since="2017-05-01" \ --before="2017-05-15" --no-merges -- t/
$ git
diff --numstat | awk '{if ($1 == "0" && $2 == "0") print $3}' | xargs git checkout HEAD 只回滚文件的 mode 但不影响内容
git log --author= "leizhenhua"
shortshat
oneline
文件强制保存: w !sudo tee %