美文网首页
git常用、实用操作:

git常用、实用操作:

作者: Q罗 | 来源:发表于2016-11-03 17:20 被阅读0次

http://iissnan.com/progit/

git常用、实用操作:

(1)对比两次修改改了哪些文件。

$ git diff --stat aa30fba0676f5e5f7bc254240b28887916596eb3 7e68d94b28a15e7b4ccce6a63ac256105e36c495 

vendor/rockchip/chinaone/AndroidBoard.mk          |  21 ++++++++----------- vendor/rockchip/chinaone/apk/Explorer_v2.2.apk    |  Bin 0 -> 375562 bytes vendor/rockchip/chinaone/apk/Welcome.apk          |  Bin 1144642 -> 0 bytes vendor/rockchip/chinaone/apk/astro.2.5.2_minde.apk |  Bin 2055219 -> 0 bytes vendor/rockchip/chinaone/apk/com.qo.android.am.apk |  Bin 427623 -> 0 bytes vendor/rockchip/chinaone/products/chinaone.mk      |    2 + 

6 files changed, 11 insertions(+), 12 deletions(-)root@luoqi-desktop:~/work/luoqi/yourAndroid/android#

(2)恢复某个文件夹或者文件

$ git checkout 文件夹 文件

(3)取消git add的文件或者文件夹 

$ git reset HEAD 文件名1 文件名2 。。。

(4)恢復 Commit,重新提交 Commit,修改数据并不会丢失。

$ git reset --soft HEAD^

(5)可以git log --stat能够方便的查看提交日记。

(6)查看没有提交的某个文件修改了什么

$ git diff 文件名1 文件名2 。。。

(7)恢复所有文件到初始状态 

$git checkout -f

(8)显示最后一次 commit 修改的内容:

 $ git show

(9)销毁所有stash了的未提交改动

$ git stash clear

(10)如果某次git push出现了错误。可以取消服务器上的该提交点,但是如果出现冲突,需要手动解决。

git revert bfd142f5cc9bd3211e22e8d5b7ceebc68374a4a5 

git push 

(11)git reset --hard eb22ee48249670dd1b2fbb7159ce95c4e9c78da4彻底回退到某个版本,本地的源码也会变为上一个版本的内容。

(12)一些简单的配置:          

$ git-config user.name "Jike Song"         

 $ git-config user.email albcamus@gmail.com         

(13)gitk图形界面先apt-get install gitk,然后到根目录下面输入gitk如果输入gitk origin/develop可以看远端分支

(14)删除远端分支(提交一个空分支上去)

$: git push origin :p4popt

To git@search.ued.taobao.net:projects/search.git 

- [deleted]        p4popt

比如删除origin/new分支:

git push luoqi@10.10.10.201:/home/rockchip/china_one/cj_5_kernel.git :new

(15)撤销最近一次修改:

$ git reset --soft HEAD~1

执行前:

commit f02aafef0ff9e69d503be84835aa86714e725b44

Author: luoqiDate:  Wed Apr 16 15:41:13 2014 +0800    

test2

commit c28ad6a7a37ad224b0fbcaa341392d6b0b109d66

Author: luoqi

Date:  Wed Apr 16 15:40:43 2014 +0800    test1

执行后:

commit c28ad6a7a37ad224b0fbcaa341392d6b0b109d66

Author: luoqi

Date:  Wed Apr 16 15:40:43 2014 +0800    test1

(16)只删除中间的一个commit对应的修改,其他不变 git revert <对应的哈希值>

创建本地tag:

git tag

或者

git tag -a-m “0.1.2版本”

删除本地tag:

git tag -d

推送tag到远程服务器:

git push origin

删除远程tag:

git push origin --delete tag

我们常用 -p 选项 展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新:

$ git log -p -2

此外,还许多摘要项可以用,比如 --stat,仅简要的显示 文件 增改行数统计,每个提交都列出了修改过的文件,以及其中添加和移除的行数,并在最后列出所有增减行数小计。

$ git log --stat

--author 仅显示指定作者相关的提交。

##########

tg summary --graphviz | dot -T png -o topgit.png

生成树形图片

git使用技巧:

git tag -l -n                      显示所有tag

git代码库回滚: 指的是将代码库某分支退回到以前的某个commit id

【本地代码库回滚】:

git reset --hard commit-id :回滚到commit-id,讲commit-id之后提交的commit都去除

git reset --hard HEAD~3:将最近3次的提交回滚

【远程代码库回滚】:

这个是重点要说的内容,过程比本地回滚要复杂

应用场景:自动部署系统发布后发现问题,需要回滚到某一个commit,再重新发布

原理:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支

操作步骤:

1、git checkout the_branch

2、git pull

3、git branch the_branch_backup //备份一下这个分支当前的情况

4、git reset --hard the_commit_id //把the_branch本地回滚到the_commit_id

5、git push origin :the_branch //删除远程 the_branch

6、git push origin the_branch //用回滚后的本地分支重新建立远程分支

7、git push origin :the_branch_backup //如果前面都成功了,删除这个备份分支

如果使用了gerrit做远程代码中心库和code review平台,需要确保操作git的用户具备分支的push权限,并且选择了 Force Push选项(在push权限设置里有这个选项)

另外,gerrit中心库是个bare库,将HEAD默认指向了master,因此master分支是不能进行删除操作的,最好不要选择删除master分支的策略,换用其他分支。如果一定要这样做,可以考虑到gerrit服务器上修改HEAD指针。。。不建议这样搞

8、解决.gitignore无法忽略的文件以及自身被忽略的方法

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

正确的做法是在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。

git update-index --assume-unchanged PATH/FILE

在PATH/FILE处输入要忽略的文件。

然后在.gitignore文件里添加要忽略的文件或文件夹就行了

需要还原回来则:

git update-index --no-assume-unchanged PATH/FILE

###################

初始化git库:

Git global setup

git config --global user.name "yourUserName"

git config --global user.email "yourEmail"

Create a new repository

git clone git@xxx.com:luoqi/sdk.git

cd {projectDir}

touch README.md

git add README.md

git commit -m "add readme"

git push -u origin master

Existing folder or Git repository

cd {projectDir}

git init

git remote add origin git@xxx.com:luoqi/sdk.git

git add .

git commit

-am "init"

git push -u origin master

相关文章

  • git常用、实用操作:

    http://iissnan.com/progit/ git常用、实用操作: (1)对比两次修改改了哪些文件。 $...

  • git--命令行相关操作(mac)

    ssh公钥生成: git简单实用 git 分支操作

  • 轻松学习命令行基础

    Git Bash和cmd都提供了命令行,操作方便非常实用,我们以Git Bash为例来总结一下几个常用的命令。 一...

  • 组件化(第一篇)

    组件化 git 常用操作指令 cocoapods的基本使用 cocoapods本地私有库 一、git 常用操作指令...

  • git的常用操作

    git的常用操作

  • GIt 操作补充

    常用的git操作命令 常用的git操作命令已经能够满足日常的工作需求 现补充一些高级命令 git branch -...

  • git使用整理

    git使用常用操作-常用基本命令 克隆:git clone 【url】 查看修改状态: git status (g...

  • GIT 版本管理 常用命令

    Git 常用命令流程图 Git常用操作命令: 初始化创建:$ git init //检出仓库:$ git clon...

  • 🍏常用 git 操作指北

    ? 常用 git 操作指南 ? git图形界面操作软件 ? 开发流程 git clone 拉取项目代码,不必多说 ...

  • git常用操作 🎀

    git常用操作 ? 基本知识 查看git信息 修改git配置 提交类操作 分支类操作 创建分支 查看分支 修改分支...

网友评论

      本文标题:git常用、实用操作:

      本文链接:https://www.haomeiwen.com/subject/hsevuttx.html