git相关命令
- git clone XXXX 将远程仓库地址克隆到本地,同时本地分支会默认处于master分支下。同时系统会自动将origin设置成该远程仓库的标识符。也就是说,当前本地仓库的master分支与GitHub端远程仓库(origin)的master分支在内容上是完全相同的。
- git init 初始化git
- git status 查看当前状态
- git remote -v 查看仓库及地址
- git remote remove origin 移除origin这个仓库及地址
- git remote add originName gitURL 添加仓库名称及地址
- git branch 查看本地所有分支,及当前所在分支*
- git branch -a 查看所有(本地/远程)分支,及当前所在分支*
- git branch -D branchName 删除本地branchName分支
- git push --delete origin(远程仓库名) remoteBranchName 删除远程分支
- git push -u origin remoteBranchName 创建远程分支
- git checkout branchName 切换到branchName分支
- git checkout -b branchName 创建分支并切换到该分支
- git checkout -b branchName <远程仓库>/<远程分支a> 以远程仓库中远程分支a为源头创建本地分支branchName
- git log 查看提交日志
- git log file(文件或目录) 只显示该目录下的日志。如果加的是文件名,就会只显示与该文件相关的日志
- git log -p file 只查看文件的提交日志以及提交前后的差别。
- git log --graph 以图表的形式查看分支
- git reflog 查看当前仓库执行过的操作日志的命令(git log命令只能查看以当前状态为终点的历史日志)
- git push <远程主机名> <本地分支名>:<远程分支名> git提交代码到远程仓库指定分支
- git push -u <远程主机名> <远程分支名> git提交代码到远程指定分支,并将指定远程分作为当前分支的上游,下次执行git pull时将直接从该分支拉取代码 如果远程仓库中没有该分支,则会自动创建该分支。
- git pull 拉取和当前分支一致的远程分支代码
- git pull remoteName branchName 拉取指定远程分支代码
- ssh -T git@github.com 返回当前登录账户及状态
- git diff 查看当前工作树与暂存区的区别(add前)
- git add file 文件加入暂存区,此后该文件成为git仓库的管理对象
- git diff Head 查看当前工作树与提交的代码的差别
- git commit -m "something" 将当前暂存区中的文件实际保存到仓库的历史记录中
- git merge --no-ff branchName 将branchName分支创建合并并提交到当前分支
- git reset --hard hashcode(hashcode通过git log命令获取) 仓库的HEAD、暂存区、当前工作树回溯到指定状态
- git commit --amend 修改上一条提交的信息
- git commit -am "something" add+commit
- git fetch remoteName 获取源仓库(通常是别人的远程仓库)的最新数据
- git merge remoteName/branch 将源仓库中branch的代码合并到本地,这样可以获取到远程仓库最新的代码。
- git 分支分类:
- 稳定分支:
- 特性分支:只为实现某个特定功能的分支
- 主干分支:特性分支的原点和终点,里面的代码都是完整的,通常用master分支做主干分支
git相关问题
- 403 问题
github/gitee等远程分支一般都是网址:账户名/项目仓库名称,因此要首先查看当前电脑登录的账户与远程分支中的账户名是否一致,其次要注意当前账户有没有ssh。
2. git冲突
======上面的是当前head中的内容,下边的是要合并的分支中的内容,冲突解决后要add再commit
3. 更改历史
文件中commit了错误代码->修改错误代码继续commit->git rebase -i HEAD~2 回退最近两次代码,编辑器中将第二个pick改为fixup即可
github快捷键
?:显示当前页支持的所有快捷键
提交内容技巧
开发者要在提交的粒度上多花心思。有意识地减小提交的规模,一方面便于清楚地表达目的,另一方面有助于其他开发者对Pull Request进行审查。
本地开发流程
- 将远程develop分支克隆或更新到本地,保持本地develop分支代码处于最新状态
- 切换分支到特性分支并开发
- 特性分支代码开发完成后commit到本地仓库
- 特性分支拉取远程develop分支代码
- 特性分支代码PR到远程特性分支仓库
- 远程特性分支PR到远程develop仓库
- 切换到本地develop分支
- 本地develop分支拉取远程develop分支最新代码。