博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git常用命令大全
阅读量:6477 次
发布时间:2019-06-23

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

hot3.png

git config --global core.email "xufeng.zhang@10.4.29.111"   指定全局邮箱(当前用户)

git config --global core.editor vim    指定全局的编辑器为vim

 

git config --global alias.co checkout

git config --global alias.br branch

git config --global alias.ci commit

git config --global alias.st status

git config --list

 

git diff README.md    列出当前文件的未跟踪版本与最近一次添加到版本库的版本的区别

git diff --staged README.md    列出已暂存版本与最近一次添加到版本库的版本的区别

git commit    会进入vim模式,用户可在里面输入此次提交的内容信息,并且注释部分列出了上次git status的信息,保存退出后注释部分不会被提交

git commit -m "信息"    输入此次提交的信息

git commit -a -m "信息"    不使用git add,直接一次性将上次跟踪的文件提交到版本库

 

git rm test.txt    将test.txt文件移除,该文件不能为被修改未暂存或已暂存的文件

git rm --cached test.txt    将test.txt从暂存中移除,并且将其从版本库中移除使其成为一个未跟踪的文件,但是本地文件未被删除

git rm -f test.txt    将test.txt强制从版本库和暂存中移除,并且将删除这个动作暂存起来(即git add之后),只有在commit之后才完全删除

                      对于处于删除的处于暂存状态的文件,首先使用git reset HEAD test.txt,然后使用git checkout -- test.txt则可以恢复最近一次跟踪的状态

 

git mv test.txt readme.txt    修改test.txt文件的名称为readme.txt

 

git log -p    显示每次修改提交文件的差异

git log -1    显示最新一次修改提交的文件的差异

git log --pretty=oneline    简化日志,只显示一行

git log --pretty=short    以简短的形式显示日志

git log --pretty=full    以正常版显示日志

git log --pretty=fuller    显示完整版的日志,其中包括文件的修改变化部分

git log --author=张旭峰    显示作者为张旭峰的提交

git log --grep=测试    显示说明中包含测试的提交

git log --since=2.weeks    显示指定时间之后的提交(2周以前)

git log --after=2.weeks    同since

git log --until="2016-11-04"    截止到2016-11-04之前的日志

git log --before="2016-11-04"    同until

git log --committer=张旭峰    提交者为张旭峰的日志

        

git commit --amend    将当前暂存区域的文件提交并与上一次提交合并,并且将此次提交的说明替换上次提交的说明

                      需要注意,如果上次提交之后修改了文件,并将其添加到了暂存区,那么其也会被一起合并到上次提交

git reset HEAD test.txt    将test.txt取消暂存,并且如果未暂存区域的该文件有修改,就以未暂存区域的该文件为准

git checkout -- test.txt    对于已修改未暂存的文件,将其回滚到最近一次提交时的状态

    

git remote    查看当前配置了哪些远程仓库,默认的远程仓库为origin

git remote -v    查看当前配置了哪些远程仓库,并且带上仓库地址

git remote add xufeng git://oschina.net/xufeng.git    在添加一个名为xufeng的远程仓库

 

git fetch    从远程拉取代码到本地,但是不会自动合并当前分支

git pull    从远程拉取代码到本地,但是会将当前分支代码自动合并

git push [remote-name] [branch-name]    将当前代码推送到指定仓库的指定分支

git remote show [remote-name]    显示远程某个分支的详细信息,主要包含远程的分支和本地的分支,以及本地与远程分支的对应信息

git remote rename orgName newName    重命名远程的仓库名

git tag    显示所有的标签

git tag -l v1.0.*    显示标签名前缀为v1.0.的标签

git tag -a v1.0.0 -m "初始版本"    创建一个名为v1.0.0的tag

git show v1.0.0    显示v1.0.0的标签内容,其中包含各个提交的详细信息

git tag -s v1.0.0 -m "签署标签"    当拥有自己的私钥时签署GPG标签的命令

git tav -v v1.0.0    验证签署标签

git tag v1.0.0    创建一个轻量级标签v1.0.0

git tag v1.0.0 b260b7f1f83437f6a07ac177908f36734484d5b5 -m "初次提交"    在指定的提交处创建tag,并添加描述信息

git push origin [tagname]    将指定标签名的标签推送到服务器上去,默认情况下标签是不会推送到服务器上的

git push origin --tag    将本地所有的标签都推送到服务器上

 

git branch testing    创建一个testing分支

git checkout testing    切换到testing分支

git checkout -b testing    创建testing分支并切换到该分支

git merge testing    将testing分支的代码合并到当前分支,如果合并过程产生冲突,那么冲突标记的上半部分(HEAD部分)表示你当前所处的分支的代码

                     下半部分表示你合并过来的分支的代码

git branch -d testing    删除testing分支,注意这里需要当前分支已经完全merge了testing分支

git branch -D testing    删除testing分支,无论testing分支是否有内容未合并到当前分支

git branch -v    显示当前所有的分支,并且显示相应的最新的提交信息

git branch --merge    查看哪些分支并入到了当前分支,即哪些分支是当前分支的直接上游

git branch --no-merge    查看哪些分支还未并入到当前分支

git checkout -b [分支名] [远程名]/[分支名]    创建一个分支并切换到该分支,将该分支与指定的远程分支对应起来

git checkout --track [远程名]/[分支名]    创建一个与指定远程分支同名的分支,切换到该分支,并将该分支与远程分支对应起来

git push [远程名] :[分支名]    删除指定的远程分支,这里注意在冒号前面有一个空格

 

git fetch origin    将远程的当前分支拉下来,但是并未合到本地的当前分支中,该命令一般和下面一条命令合用

git merge origin/serverfix    将(拉下来的)本地的serverfix分支合到当前分支

git checkout --track origin/serverfix    在本地创建serverfix分支,并将其与远程的serverfix分支关联起来

 

git push --set-upstream origin test    将当前分支指定与远程的origin/test分支关联起来

 

git merge test    将test分支与当前分支合并,其合并原理是找到当前分支和test的共同祖先,并且将当前分支,test分支以及共同祖先进行简单的三方合并

git rebase master    将当前分支合并到master分支,其合并原理是将当前分支打一个补丁,并且在当前分支和master分支的共同祖先去往master的线路的第一个节点(共同祖先的下一个节点)处将打的当前分支的补丁补进去,并且去>往master分支的后续节点都会应用该补丁,直到补到master所在的节点,其结果就是在master的下游直接产生了一个节点,最后再回到master分支将rebase的分支合并过来。这样做的目的主要是为rebase的分支产生更加清晰的提交记录

git rebase --onto master server client    取出client分支,找出client分支和server分支的共同祖先之后的变化,然后把它们在master上重演一遍(重演之后需要执行git checkout master和git merge client才能将重演之后的代码

合并到master分支)

git rebase [主分支] [特性分支]    如git rebase master server,将server分支在master分支上进行重演

说明:衍合操作只能在你本地所独有的分支上进行,因为如果分支一旦发布出去,比如远程有两个分支,另外有人在其中一个分支上工作,而此时你又把该分支给衍合到了主干分支,那么在该分支上工作的人最后提交代码时也不得不进行

一次衍合操作

 

ssh-keygen    生成ssh key

转载于:https://my.oschina.net/zhangxufeng/blog/833255

你可能感兴趣的文章
String字符串的截取
查看>>
Shell编程-环境变量配置文件
查看>>
Struts2和Spring MVC的区别
查看>>
理解Javascript参数中的arguments对象
查看>>
git代码冲突
查看>>
git bash 风格调整
查看>>
linux操作系统加固软件,系统安全:教你Linux操作系统的安全加固
查看>>
linux中yum源安装dhcp,24.Linux系统下动态网络源部署方法(dhcpd)
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
JavaNIO基础02-缓存区基础
查看>>
日本开设无人机专业,打造无人机“人才市场”
查看>>
190行代码实现mvvm模式
查看>>
兼容几乎所有浏览器的透明背景效果
查看>>
jeesite 框架搭建与配置
查看>>
Linux VNC server的安装及简单配置使用
查看>>
阿里宣布开源Weex ,亿级应用匠心打造跨平台移动开发工具
查看>>
Android项目——实现时间线程源码
查看>>
招商银行信用卡重要通知:消费提醒服务调整,300元以下消费不再逐笔发送短信...
查看>>
C#_delegate - 调用列表
查看>>
[转]Windows的批处理脚本
查看>>