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
  • 相关阅读:
    Binary Tree Maximum Path Sum
    ZigZag Conversion
    Longest Common Prefix
    Reverse Linked List II
    Populating Next Right Pointers in Each Node
    Populating Next Right Pointers in Each Node II
    Rotate List
    Path Sum II
    [Leetcode]-- Gray Code
    Subsets II
  • 原文地址:https://www.cnblogs.com/E7868A/p/2776165.html
Copyright © 2011-2022 走看看