• git常用命令2


    Git:
    学习git的网站:

    设置个人环境:
    git config :
    配置文件位置:~/.gitconfig

    配置用户名:
    $ git config --global user.name "os-tanwn"

    配置用户邮箱:
    $ git config --global user.email os-tanwn@nowada.com

    配置编辑工具:
    $ git config --global core.editor vim

    配置颜色:
    git config --global color.diff auto
    git config --global color.status auto
    git config --global color.branch auto




    用git开始管理一个工程:

    初始化一个git仓:
    git init

    把特定文件不纳入版本库管理:
    Git过滤文件和文夹
    第一步:添加".gitignore"文件
    往项目根目录添加一个文件".gitignore"。这文件和".git"文件夹同级。
    第二步:设置过滤条件
    *.a # 忽略所有 .a 结尾的文件
    !lib.a # 但 lib.a 除外
    /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/ # 忽略 build/ 目录下的所有文件
    doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt *.o 过滤所有.o文件,这个最好不要使用.o,我们编译是经常会产生这种文件。

    或者从远程服务器下载一个git工程:
    git clone

    或者从远程服务器下载一个git 分支工程:
    git checkout -b <分支>

    把文件纳入git版本库的暂存区:
    git add:
    git add –u <path> 把<path>中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件
    git add –A <path> 把<path>中所有tracked文件中被修改过或已删除文件的信息添加到索引库, 包括untracted的文件

    git rm
    要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了

    git mv
    重命名文件 git mv old_name new_name


    把文件从git暂存区移出来:
    git reset HEAD <path>
    git reset –hard <历史指纹> 回滚到改历史指纹,同时会把git里面所有改动都被覆盖掉
    git reset –soft <历史指纹> 相当于把之前的commit撤回到暂存区


    git format-patch HEAD^ 生成一个补丁
    git format-patch HEAD^^ 生成两个补丁(最多支持四个^)
    git format-patch -<正整数i> 生成最近commit的i个补丁
    git format-patch –n 指纹 生成从指纹之前的n个补丁

    git am <patch> 打上一个补丁
    git am –abort 取消打补丁(一般是打补丁出错后执行的)
    git am –resolved 解决了打补丁的冲突

    git apply <patch> 直接应用修改
    git apply –reject 应用修改,如果没打上,则生成差异的文件
    git revert 撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销
    作为一次最新的提交

    git commit 把暂存区的仓库提交到版本管理库里面
    git commit –amend 对上一次的提交做修改


    git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面加“*”号标记,

    git branch -r 列出远程分支

    git branch -a 列出本地分支和远程分支

    git branch 创建一个新的本地分支,需要注意,此处只是创建分支,不进行分支切换

    git branch -m | -M oldbranch newbranch 重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名

    git branch -d | -D branchname 删除branchname分支

    git branch -d -r branchname 删除远程branchname分支

    git log --pretty=oneline 类似于tig

    git log --author=os-tanwn --since="14 days ago" --pretty=oneline 找这14以来作者是os-tanwn做的补丁,并且以简列形式显示

    git log --committer=os-tanwn 提交者是os-tanwn的(提交者和作者意思是author是补丁的制作者,而committer是提交者,比如说我有提交远程服务器补丁的权限,但其他人没有,所有其他的补丁是通过我提交的,我就是committer,但author是其他人)

    git log –stat显示被修改文件的修改统计信息,添加或删除了多少行

    git log --grep=“gt9xx.c ” --pretty=oneline 找有gt9xx.c的补丁




    git diff
    git diff <1> <2> -- <file> 比较指定两个指纹间某个文件的差别
    git checkout 切换到分支或者把当前文件还原回版本库的文件
    git checkout branch – filename 维持HEAD的指向不变。用branch所指向的提交中filename替换暂存区和工作区中相 应的文件。注意会将暂存区和工作区中的filename文件直接覆盖

    git reflog 查看最近的版本,通过找到id号后可以通过git reset –HARD <id>回到被reset的版本

    服务器同步和提交到服务器
    git pull
    git push

    远程服务器log:
    git remote update //同步远程版本的信息,但不会把更新内容放到工程里面,只改变了仓库
    git log origin/$(分支名) //可以查看服务器的最新更新记录

  • 相关阅读:
    python学习第四天 --字符编码 与格式化及其字符串切片
    Lambda表达式 之 C#
    python学习第三天 --布尔类型
    深入理解正则表达式
    《你不知道的JavaScript》第一部分:作用域和闭包
    jquery的extend和fn.extend
    HttpModule与HttpHandler详解
    jQuery分析(2)
    jQuery分析(1)
    jQuery源码中的“new jQuery.fn.init()”什么意思?
  • 原文地址:https://www.cnblogs.com/senior-engineer/p/8078568.html
Copyright © 2020-2023  润新知