zoukankan      html  css  js  c++  java
  • Git命令笔记本

    设置

    git config --global user.name "Your Name"
    git config --global user.email "Your E-Mail"
    git config --global core.editor vim
    git config --global merge.tool     vimdiff
    git config --list                                # 显示当前的配置
    git config --global core.autocrlf false          # 停止换行的自动转换

    初始化或者Clone一个库

    git init                 # 初始化一个新的空库
    
    git clone   URL          # 克隆一个远程库
    git clone --bare   URL   # 克隆不带工作目录的纯库

    文件操作相关

    git status                    # 查看状态
    
    # 将修改添加到Stage
    git add  .                    # 当前目录所有已在版本库中的文件
    git add file                  # 添加文件
    
    git diff               # 查看修改      
    git diff     --cached  # 查看已经暂存的差异
    
    git commit                   # 将已加到Stage的文件提交到库中
    git commit -m "修改注释"
    git commit -a -m "修改注释"   # 直接将已跟踪的文件,添加到Stage并提交   
    
    git rm               # 删除文件
    git rm -f            # 已修改的文件 强制删除
    git rm --cached      # 删除,但保留文件在磁盘
    
    git mv               # 移动 重命名
    
    git checkout file    # 将文件恢复到上次提交的状态,撤销修改
    git checkout -- ./   # 撤销当前目录所有修改 

    gitignore

    .gitignore     # 添加忽略项到这个文件中
    
    # 此为注释 – 将被 Git 忽略
    *.a            # 忽略所有 .a 结尾的文件
    !lib.a         # 但 lib.a 除外
    /TODO          # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
    build/         # 忽略 build/ 目录下的所有文件
    doc/*.txt      # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

    查看提交历史

    git log
    git log -p -2     # -p 展开内容差异 -2 显示最近2次提交
    git log --stat    # 显示统计
    git log --graph   # 图形化地显示提交历史
    git log --pretty=oneline #  oneline, short, full, fuller
    git log --since --after --until --before --author --committer --grep
    git log --pretty=format:"%h - %an, %ar : %s"

    修改和撤销提交

    # 修改最后一次提交
    git commit -m "foo"
    git add forgotten_file
    git commit --amend               # 只产生一个提交
    
    # 撤销暂存
    git reset HEAD some_file
    
    # 回到上一次提交
    git reset HEAD^ --soft  # 文件修改保留 HEAD^表示HEAD的父提交
    git reset HEAD^ --hard  # 不保留文件修改

     远程库

    git remote              # 查看当前的远程库
    git remote -v           # 更详细
    
    git remote add [name] [url] # 添加远程仓库
    
    git fetch [remote-name] # 从远程仓库抓取数据
    
    git fetch origin        # 从服务器抓取最新的提交,不合并
    git pull                # 从服务器抓取,并合并到工作目录
    
    git push [remote-name] [branch-name] # 推送数据到远程仓库
    
    git remote show origin     # 查看远程仓库信息
    git remote rename pb paul  # 重命名远程仓库
    git remote rm pb           # 删除远程仓库

    tag

    git tag                     # 列出已有的标签
    git tag -l "v1.4*"          # 过滤
    
    # 新建tag
    git tag -a v1.4 -m "标签注释"
    git show v1.4               # 显示标签信息
    
    # 后期加标签
    git log --pretty=oneline         # 找到对应提交的校验
    git tag -a v1.2 9fceb02          # 追加到校验上
    
    # 分享标签
    git push origin v1.5            # 推送某个标签
    git push origin --tags          # 所有的标签都推送

    分支

    git branch testing               # 创建分支
    git checkout testing             # 切换工作目录到分支
    git checkout -b iss53            # 创建分支并切换到分支
    git checkout -b my2.6.14 v2.6.14 # 从tag创建一个分支并checkout
    git checkout -b serverfix orign/serverfix # 从远程分支创建一个分支,并checkout
    git branch --set-upstream branch remotebranch # 将已有分支跟踪远程分支
    git branch --track localbranch remotebranch   # 将本地分支跟踪到远程分支
    
    git branch -d iss53                # 删除一个分支
    
    git branch                         # 列出分支
    git branch -v                      # 列出分支详细信息
    git branch -r                      # 列出远程分支
    git branch --merged                # 已合并的分支
    git branch --no-merged             # 未合并的分支
    
    git push origin serverfix          # 推送分支到远程
    git push origin :serverfix         # 从远程删除分支        
    
    git merge anotherbranch             # 合并另一个分支到当前分支
    git merge anotherbranch --no-commit # 合并分支但不提交

    rebase 保持干净的提交历史

    git rebase master

    清空工作目录

    git clean -x -d -f
    -x 将忽略的文件一起删除
    -d 将目录删除

    将已删除的文件添加到暂存

    git add -u

    导出某个分支到指定目录

    git archive master | tar -x -C  /some/path

    子模块

    git submodule add git://github/foobar.git
    git submodule init
    git submodule update
  • 相关阅读:
    ExtJs学习笔记之ComboBox组件
    ExtJs学习笔记之学习小结LoginDemo
    ExtJs学习笔记之Button组件
    ExtJs学习笔记之TextField
    WAF指纹识别和XSS过滤器绕过技巧
    python中的迭代与递归
    使用Python对文档单词进行计数
    Python正则表达式使用实例
    Python十六进制与字符串的转换
    数组名a,数组名取地址&a,数组首地址&a[0],数组指针*p
  • 原文地址:https://www.cnblogs.com/E7868A/p/2776165.html
Copyright © 2011-2022 走看看