本文共 4567 字,大约阅读时间需要 15 分钟。
git checkout [file]
例子: git checkout . // 撤销全部 git checkout fileName // 撤销某个文件git clean -fd
命令示例
git checkout featuregit rebase master
它会把整个 feature 分支移动到 master 分支的后面,有效地把所有 master 分支上新的提交并入过来
但是,rebase 为原分支上每一个提交创建一个新的提交,重写了项目历史,并且不会带来合并提交。
查看操作
# 查看git日志git reflog show --date=iso
# 生成秘钥,cat id_rsa.pub可以查看生成的密钥ssh-keygen -t rsa# 更改用户名git config --global user.name “alex”# 更改邮箱git config --global user.email "alex@gmail.com"
如果是换新机,公私钥建议使用拷贝的方式到新电脑,这样可以减少很多重新设置,拷贝的文件包括id_rsa、id_rsa.pub、config(可能没有)
# 第1步:(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库git init# 第2步:把文件添加到版本库中,使用命令,添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件 git add .# 第3步:用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明git commit -m 'first commit'# 第4步:关联到远程库, git remote add origin 你的远程库地址,如:git remote add origin https://github.com/cade8800/ionic-demo.git# 第5步:获取远程库与本地同步合并(如果远程库不为空必须做这一步,否则后面的提交会失败)git pull --rebase origin master# 第6步:把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传git push -u origin master# 第6步:状态查询命令,git status# 排除.gitignore文件中定义不需要提交的内容git status .gitignore
http://blog.csdn.net/wanglei_storage/article/details/70171223
git fetch --all git reset --hard origin/master git pull
很多开源项目都在github上管理,一些常见操作也需要掌握下
# 搜索,stars大于1000的项目java stars:>1000# 查看一些标准的API写法:https://api.github.com/# 挖掘java前沿的开源项目:Explore-->Trending
# 远程地址git remote -vgit remote add pb https://git.oschina.net/chenlushun12/demo.git# 回滚到上一个版本git reset --hard HEAD~1# 加入-f参数,强制提交git push -f origin master# 找到对应的版本git log# 跳会到对应版本 git revert 3dewejfe445lfkdjskl # 撤销修改git checkout -- file# 删除文件git rm file# 查看状态git status# 添加记录git add file 或 git add .# 添加描述git commit -m "miao shu nei rong"# 同步数据git pull# 提交数据git push origin name
分支操作
# 切换分支git checkout name# 查看分支git branch# 创建分支git branch name# 切换分支git checkout name# 创建+切换分支git checkout -b name# 合并某分支到当前分支git merge name# 删除本地分支git branch -d xxxxxx # 删除本地多个分支git branch -D xxxxxx cccccc # 删除远程分支git push origin :name
很多文章都介绍了如何写一个好的commit message,这里只是做一个场景归纳,当然写commit message不是写文章,快速且清晰明了地将事情说清楚,目的也就达到啦。 这里主要是将如何提交英文的commit message,国际化了,也让国际友人能够读懂。
编写Commit Message的大原则就是 Verb + Object + Adverb这个样式,但是我们这里就不讲大道理,将一些场景列举给大家(28原则),方便套用。如果有没有涉及到的场景,大家可以反馈一下,我加一下。
注意:这里重构不涉及API接口的method重命名,类变量重命名等,这些都会引起调用方跟着调整。
代码重构: 重构动作 + 宾语,如 Rename userId to id,常用的动作rename, move, extract, inline等,看一下Refactor菜单项目就可以。 添加代码和逻辑: 用Add, 如 Add nick field,Add findNickByEmail method 代码的变化: 格式为 Change xxx to xxx ,如 Change spring-boot-starter-test scope to test ,如果需要原因支持,添加with ,如 Change Mina to Netty with performance promotion Maven artifact 升级: Update to HSF 2.1.6 Bug修复: Fix + 内容, Fix #1234, Fix cookie write error after login,一定要写修复的内容。 文案修改: Fix typo in xxxx
注意事项
动词不要被动式,如Fixed, Changed, Updated,这些都不对 现在都流行微服务,单一职责等设计,所以要做到小更改,多提交,好处大家都知道的,commit message也好写。之前有同学告诉我一个小时才提交一次,调整的代码太多啦,会说不清原因的,只能 Update daily 啦。 commit message和bug issue的提交还是不一样的,bug要说的非常清楚,减少不必要的沟通成本,方便重现,而commit要简明,而且代码变化就在那儿,如果上纲上线,我个人觉得没有必要。 比较丑陋的commit message,大家对比一下* "" - a blank commit message is totally useless, the shame!!!!* "bug fix" - doesn't describe what was fixed or why* "minor updates" - doesn't describe what was done, minor is a relative term* "adds button" - doesn't describe what button was added where or what it does* "typo" - where was the typo? how to confirm it is fixed?
Verb和Adverb
前面我们介绍的Commit Message的格式为 Vert + Object + Adverb,当然常见的Adverb有以下几个,from, to, with, in等。Windows下PowerShell有一个Get-Verb命令,可以列出常见的动词,这里我就贴过来,大家看一下。 大家注意一下分组,有通用的,数据的,安全的,诊断,通讯等,大家对照一下,就不一一说明啦。
背景: fork别人的项目clone到本地后,远程分支有修改,需要同步远程分支,使得本地代码与远程分支一致。
1、
git remote -v
orgin:为本地分支的
upstream:为远程分支2、上一步操作没有upstream,则需要添加uptream
git remote add upstream <原作者项目的url>原作者项目的url>
完成后,执行git remote -v确认与上一致。
3、将远程分支同步到本地
git fetch upstream
4、检查本地代码变更
git checkout master
5、合并分支
git merge upstream/master
假设每个人有个开发分支,想隔一段时间就把自己的开发分支上的代码保持和测试分支一直,则需要如下操作:
1.我想将test分支上的代码完全覆盖dev分支,首先切换到dev分支
git checkout dev
2.然后直接设置代码给远程的test分支上的代码
git reset --hard origin/test
3.执行上面的命令后dev分支上的代码就完全被test分支上的代码覆盖了,注意只是本地分支,这时候还需要将本地分支强行推到远程分支。
git push -f
设置
git config pull.rebase true # rebase参考
https://blog.csdn.net/dake_160413/article/details/78676163