博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GIT的一些操作
阅读量:2391 次
发布时间:2019-05-10

本文共 4567 字,大约阅读时间需要 15 分钟。

文章目录

撤销本地修改

git checkout [file]

例子:
git checkout . // 撤销全部
git checkout fileName // 撤销某个文件

删除工作空间未add的文件

git clean -fd

Rebase

命令示例

git checkout featuregit rebase master

它会把整个 feature 分支移动到 master 分支的后面,有效地把所有 master 分支上新的提交并入过来

但是,rebase 为原分支上每一个提交创建一个新的提交,重写了项目历史,并且不会带来合并提交。

reflog

查看操作

# 查看git日志git reflog show --date=iso

git设置

# 生成秘钥,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

git 本地仓库的初始化及多节点批量同步

http://blog.csdn.net/wanglei_storage/article/details/70171223

git强制更新本地代码

git fetch --all  git reset --hard origin/master git pull

github上的几个操作

很多开源项目都在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,国际化了,也让国际友人能够读懂。

编写Commit Message的大原则就是 Verb + Object + Adverb这个样式,但是我们这里就不讲大道理,将一些场景列举给大家(28原则),方便套用。如果有没有涉及到的场景,大家可以反馈一下,我加一下。

  • 代码提交场景列表
    代码打磨
    代码重构(extract method, rename block variable,private method rename),代码格式化,就是不涉及逻辑调整的,interface -> lambda, for - > foreach等,都属于无错修改,这个时候提交代码用“Polishing”就可以啦,表示打磨,更清晰,更容易阅读,别人知道这个修改不会引入什么错误。IntelliJ IDEA经常会提示你做这个事情,当然你也可写具体修改,但是通常Polishing就已经能表达意思啦。

注意:这里重构不涉及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项目如何保持与主分支一致

背景: fork别人的项目clone到本地后,远程分支有修改,需要同步远程分支,使得本地代码与远程分支一致。

1、

git remote -v

orgin:为本地分支的

upstream:为远程分支

2、上一步操作没有upstream,则需要添加uptream

git remote add upstream 
<原作者项目的url>

完成后,执行git remote -v确认与上一致。

3、将远程分支同步到本地

git fetch upstream

4、检查本地代码变更

git checkout master

5、合并分支

git merge upstream/master

git将某个分支的代码完全覆盖另一个分支

假设每个人有个开发分支,想隔一段时间就把自己的开发分支上的代码保持和测试分支一直,则需要如下操作:

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

你可能感兴趣的文章
桥接模式-通俗的理解(转)
查看>>
MXML 文件中的xmlns是什么意思?
查看>>
Flex Builder 中的工作空间、项目
查看>>
Flex 获得远程数据
查看>>
Flex 添加效果的两种方法
查看>>
Flash Builder 4字体设置
查看>>
Actionscript 3.0 笔记一
查看>>
图像处理库OpenCV参考网址
查看>>
dllimport与dllexport作用与区别
查看>>
OpenGL坐标系
查看>>
C++用new和不用new创建类对象区别
查看>>
C++ C# JAVA 创建对象
查看>>
齐次坐标的理解
查看>>
QT配置文件
查看>>
QT .pro配置文件2
查看>>
Qt 模态与非模态对话框
查看>>
Qt C++中的关键字explicit .
查看>>
qtcreator中常用快捷键
查看>>
PowerDesigner 简介
查看>>
VS2008快捷键大全
查看>>