转自git常用命令
开发模式
git:分布式的版本管理系统,一般的开发模式:
项目开始阶段
初始化项目(init),提交本地的代码到仓库,将本地仓库的代码推送到远端库(push);
项目开发人员从远端库克隆代码到本机(clone),此时本地仅有一个master分支;新建dev分支并切换、在Dev分支中进行开发工作,其实就是修改并提交代码(add+commit);当开发的dev分支的代码没问题时,将dev分支合并(merge)到master;将master推送到远端分支,至此,其他的项目开发人员就可以查看到你提交的代码了!
dev分支也可以是修复某个bug或者为了开发某个issue建立的,当bug已经修复或issue开发完成时,把dev合并到master之后,就可以把它删除了
git基本命令
git status 命令说明:
从图中可以看出,绿色的就是已经add过的
git分支管理
P.S. 如果两个分支同时进行了同一个文件的修改和提交,在merge时就会产生冲突,首先要手动打开文件解决冲突,再提交,就相当于进行了merge
从下图可以看到,红色和绿色的虚线分别代表两个分支,两个分支分别进行了commit,最新的一次提交将两个分支内容进行了合并(用到了查看分支合并图命令:git log–graph)
git远端库相关
git remote add origin git://127.0.0.1/abc.git
这样就增加了远程仓库abc。
git remote remove origin
移除远端仓库
将本地仓库内容推送到远端仓库(-u 表示第一次推送master分支的所有内容,后面再推送就不需要-u了),跟commit的区别在于一个是提交到本地仓库,一个是提交到远程仓库
git push -u origin master
从远端库更新内容到本地(相当于svn的update),
git pull
tips:如果push的时候,本地和文件和远端文件有冲突,就要先pull、然后手动解决冲突,才能继续push
git记住用户名密码
push的时候默认每次都需输入GitHub的用户名和密码,在git仓库根目录下.git文件夹的config文件末尾增加如下内容,即可记住用户名密码,无需每次推送都输入了
[credential]
helper = store
提交到git时,忽略部分IDE产生的文件
在根目录下创建.gitignore文件, 注意:新加.gitignore只能忽略那些原来没有被提交过的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m ‘update .gitignore’
gitignore文件内容,举例如下:
//target
//.project
//.classpath
//.settings
git查看某一段时间更新代码量的命令
git log --since=2018-09.01 --until=2018-09.27 --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 }’ -