博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git操作杂记
阅读量:4042 次
发布时间:2019-05-24

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

===Tangji笔记===================

##git操作

git config --global color.ui true
git merge mybranch (merge from mybranch)
git branch -d mybranch 删除分支
git branch -D mybranch 强制删除分支
git branch 列出所有分支
git branch -v 查看各个分支最后一次提交
git branch –merged 查看哪些分支合并入当前分支
git branch –no-merged 查看哪些分支未合并入当前分支
git fetch origin 更新远程库到本地
git push origin mybranch 推送分支
git merge origin/mybranch 取远程分支合并到本地
git checkout -b mybranch origin/mybranch 取远程分支并分化一个新分支
git push -u origin sean3.5 设置本地分支的默认push分支
git checkout --  src/enterprise/Api/User.php 撤回本地修改
git push origin :mybranch 删除远程分支
git log --name-status 每次修改的文件列表, 显示状态
git log --name-only 每次修改的文件列表
git log --stat 每次修改的文件列表, 及文件修改的统计
git log --after='2019-05-23' --graph --stat
git whatchanged 每次修改的文件列表
git whatchanged --stat 每次修改的文件列表, 及文件修改的统计
git show 显示最后一次的文件改变的具体内容

git tag 查看tag

git tag -a V1.2 -m 'release 1.2' 创建tag
git show V1.2 显示附注信息
git push origin --tags  同步到远程代码库
git tag -d V1.2 删除本地 V1.2的版本
git push origin :refs/tags/V1.2 删除线上版本
git fetch origin tag V1.2 获取远程版本

git diff-tree -r --author='zhangyi' --no-commit-id --name-only fda6e8a83230f6e2bf82fc3eff33eb705d121a33 a93f3b66e047474be18c26b1420110b71151b696

sudo git diff f4710c4a32975904b00609f3145c709f31392140 HEAD --name-only | cpio -pvdmu /var/www/git_update/update_201800001.tar

-- 从版本库中删除指定目录
.gitignore
git rm -r folder_path --cached 命令即可

 

====================================

1. git日志查看

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
git config --global alias.lg "log --graph --pretty=format:'%Cred%H%Creset @%C(yellow)%d%Creset %n Author: %cn <%_ce> %n Date: %_cd %_Cblue(%cr)%Creset %n %n Commit subject: %Cgreen%s%Creset %n'"
在git提交环节,存在三大部分:working tree, index file, commit
这三大部分中:
working tree:就是你所工作在的目录,每当你在代码中进行了修改,workingtree的状态就改变了。
index file:是索引文件,它是连接workingtree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时indexfile就和working tree同步了。
commit:是最后的阶段,只有commit了,我们的代码才真正进入了git仓库。我们使用git-commit就是将indexfile里的内容提交到commit中
git diff:是查看working tree与index file的差别的。
git diff --cached:是查看index file与commit的差别的。
git diff HEAD:是查看workingtree和commit的差别的。(HEAD代表的是最近的一次commit的信息)

 

 

git log --name-status 每次修改的文件列表, 显示状态git log --name-only 每次修改的文件列表git log --stat 每次修改的文件列表, 及文件修改的统计git whatchanged 每次修改的文件列表git whatchanged --stat 每次修改的文件列表, 及文件修改的统计git show 显示最后一次的文件改变的具体内容
 
git log --graph --pretty=format:"%h - %an, %ar %s"  查看主线

 

 

根据他的提示,我做了如下操作,

git config --global push.default "current"

 

2.版本回退
$ git reset --hard HEAD^
## git中用HEAD表示当前版本,HEAD^表示上一版本,HEAD^^表示上一版本
HEAD~100表示上100个版本
## 或者直接指定版本号(不用全输,只许前面几位即可)
$ git reset --hard 534688
查看版本号的命令:
$ git reflog
## 如果要单独回退某一个文件,可在最后加上文件名称,但不能加 --hard参数
$ git reset HEAD^ index.txt

 

 

 

 

3. 单个文件废弃

$ git checkout -- index.txt
## 整个工程废弃
$ git checkout -f
## 这个命令会把你工作区中的修改回退到最后一次add命令之前的状态
## 即如果缓存区有内容,则回退到和缓存区一直
## 如果缓存区为空,则回退到和版本库一致

 

4.创建空分支

 

 
$ git checkout --orphan gh-pages

 

$git checkout . // 撤销本地

$git reset . //撤销索引

 

5. git 打标签

git tag -a v1.01 -m "Relase version 1.01"

=-========================================

Git删除暂存区或版本库中的文件

    我们知道Git有三大区(工作区、暂存区、版本库)以及几个状态(untracked、unstaged、uncommited),下面只是简述下Git的大概工作流程,详细的可以参见本博客的其他有关Git的文章
  (1)打开你的项目文件夹,除了隐藏的.git文件夹,其他项目文件位于的地方便是工作区,工作区的文件需要添加到Git的暂存区(git add),随后再提交到Git的版本库(git commit)。
  (2)首次新建的文件都是untracked状态(未跟踪),此时需要git add到暂存区,Git便会在暂存区中生成一个该文件的索引,文件此时处于uncommited状态,需要git commit生成版本库。添加到了版本库之后,再对文件进行修改,那么文件的状态会变为unstaged状态。
 
1 删除错误添加到暂存区的文件
    有时你在工作区新建了文件TestFile,并且已经将它添加到了暂存区,git会告知,现有有一个文件未提交到版本库,如下图:
    1.1 仅仅删除暂存区里的文件    
    此时你想撤销错误添加到暂存区里的文件,可以输入以下命令:
    git rm --cache 文件名
 
    上面的命令仅仅删除暂存区的文件而已,不会影响工作区的文件,如上图,TestFile.txt仍然存在,此时输入下面命令,git会告知有一个未跟踪的文件TestFile.txt。
    git status
 
    1.2 删除暂存区和工作区的文件
    git rm -f 文件名   工作区的文件也被删除了。
2 删除错误提交的commit
    有时,不仅添加到了暂存区,而且commit到了版本库,这个时候就不能使用git rm了,需要使用git reset命令。
    错误提交到了版本库,此时无论工作区、暂存区,还是版本库,这三者的内容都是一样的,所以在这种情况下,只是删除了工作区和暂存区的文件,下一次用该版本库回滚那个误添加的文件还会重新生成。
    这个时候,我们必须撤销版本库的修改才能解决问题!
    git reset有三个选项,--hard、--mixed、--soft。
    //仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
    git reset --soft 版本库ID
 
    //仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
    git reset --mixed 版本库ID
 
    //彻底将工作区、暂存区和版本库记录恢复到指定的版本库
    git reset --hard 版本库ID
    那我们到底应该用哪个选项好呢?
    (1)如果你是在提交了后,对工作区的代码做了修改,并且想保留这些修改,那么可以使用git reset --mixed 版本库ID,注意这个版本库ID应该不是你刚刚提交的版本库ID,而是刚刚提交版本库的上一个版本库。如下图:
    (2)如果不想保留这些修改,可以直接使用彻底的恢复命令,git reset --hard 版本库ID。
    (3)为什么不使用--soft呢,因为它只是恢复了版本库,暂存区仍然存在你错误提交的文件索引,还需要进一步使用上一节的删除错误添加到暂存区的文件,详细见上文。

 

======================================================================

删除本地分支,并重新拉取远程分支复制到本地

1. 删除本地分支
假设想要删除本地的分支temp,并且当前处在temp分支上,首先需要切换到别的分支(假设切换到develop分支):
git checkout develop  //切换到develop分支
git branch  //此时处在develop分支
git branch -D temp  //删除本地temp分支
 
2.重新拉取远程仓库代码,并自动创建分支
git fetch 会将远程代码的更新(commit)拉取到本地。
git fetch origin temp:temp  //拉取远程库temp分支的代码到本地的temp分支,如果不存在temp分支,将自动创建temp分支
git fetch <远程主机名>  //将远程库的更新(commit)拉取到本地
git fetch <远程主机名> <分支名>  //将远程库的<分支名>的分支拉取到本地

 

 

 

 

转载地址:http://euadi.baihongyu.com/

你可能感兴趣的文章
expdp/impdp 数据库迁移详细过程
查看>>
oracle 误删除表的几种恢复方法
查看>>
hadoop、hbase、hive、spark分布式系统架构详细搭建过程
查看>>
Hadoop与Hbase各版本对应关系
查看>>
impdp时ORA-39126: Worker unexpected fatal error in KUPW$WORKER.PUT_DDLS [TABLE_STATISTICS]
查看>>
OracleMTSRecoveryService 启动失败
查看>>
oracle job如何定时执行带参数的存储过程
查看>>
oracle12c存在pdb情况下的data guard 详细搭建
查看>>
oracle 查询自动补全日期以及相应的数据
查看>>
Centos7.4 zabbix3.4.8源码安装详细过程
查看>>
python 自动抓取网页新闻以及图片并存储到数据库中
查看>>
python监控系统(flask+python+html)
查看>>
oracle从备份集中恢复归档日志方法
查看>>
Oracle跨版本与跨平台执行传输表空间(XTTS)
查看>>
fatal: unable to access 'https://github.com/danfengcao/binlog2sql.git/': SSL connect error
查看>>
Mysql误操作后使用binlog2sql快速回滚
查看>>
sql loader导出数据和导入数据(sqlldr)
查看>>
RedoLog Checkpoint 和 SCN关系
查看>>
Oracle 实例恢复时 前滚(roll forward) 后滚(roll back)
查看>>
Oracle redo log 机制
查看>>