基本介绍
1、git clone xxx
2、git init :此时git文件夹已经自动生成,也是git的核心
3、手动创建README.md项目说明文档
4、git add README.md :将READ.md说明文档放入暂存区域
5、git commit -m “此处添加了说明文件”
6、git status:git提交状态
7、git log:显示所有已上传文件
8、git reset --hard commit号:回退到上一版本(慎重,不可恢复)
第一次搭建git仓库
1、git add --all
2、git commit -m “add spacename”
3、git fetch upstream : 把上游仓库的最新更改弄到本地(所有的branch和tag)
4、git rebase upstream/master:把上一步弄下来的上游仓库中的upstream/master分支合并到当前分支。
5、git push origin master(git push origin handler)提交本地仓库到远程仓库
标准开发流程
1、在远程开辟一个分支test(gitlab上操作)
2、git clone xxx
3、git checkout -b test origin/test :建议在本地创建同名分支
4、在本分支开发完要提交到远程test
git add --all
git commit -m “xxx”
git push origin test
5、将远程/本地test合并到master
git checkout master 切换到master
git rebase test
①:若rebase没出现问题:git push origin master
②:若rebase出现问题:fix问题后
git add --all
git rebase --continue
git push origin master
6、git status 查看当前状态
7、发现push到master的commit是自动生成的,若要修改commit内容
git commit --amend 进入commit编辑模式,修改commit内容后
git push origin master -f
合并多次commit
1、git rebase -i commit号:指定分支的上一次commit
2、进入编辑模式
除了第一行是pick,其余的行都是squash,然后 输入:wq or x 保存退出。
pick 的意识是要执行这个 commit
squash 的意识是这个 commit 会被合并到前一个 commit
3、若出现冲突,手动解决,解决后
git add --all
git rebase --continue
若没有冲突/解决完冲突再次进入编辑模式:
保留一个commit message
4、git push -f or git push --force
打tag提交
//在本地打tag
1、git tag xxx
// 把tag推到远程分支
2、git push origin xxx
// 查看commit号和tag
git show xxx
删除本地分支
// 查看本地分支
git branch -l
//查看远程分支
git brach -r
//删除本地分支
git branch -d 分支名
// 若本地分支与远程分支不一致,仍想删除本地分支
git branch -D 分支名
git log统计代码量
//统计某个时间段的代码量
git log --pretty=tformat: --since =xxx --until=xxx --numstat --oneline --decorate"
–numstat:统计每个commit 的文件修改行数,包括增加,删除,并列出文件列表
–pretty=tformat:可以定制要显示的记录格式,这样的输出便于后期编程提取分析 (例如:git log --pretty=format:""%h - %an, %ar : %s"")
–pretty=oneline:一行显示,只显示哈希值和提交说明
git cherry-pick
切换到目标分支cherry-pick,注意合并后新分支的commit号会改变
单个commit:git cherry-pick ee99d9
多个commit:git cherry-pick ee99d9a…ew2345fee(当多个commit之间有冲突建议单个commit)
若出现冲突,git status查看选择解决还是放弃
查看git版本
git --version
git version 2.14.3 (Apple Git-98)
查看commit号
git rev-parse HEAD
daebbd0304fa1445999124ef3ebda40d35d7835c