Git

Git 速查手册,不包含详细解释,只方便日常使用Git时快速查询

起步 Getting Started

  • 初始化用户名
    git config --global user.name "csensix"
  • 初始化邮箱
    git config --global user.email "csensix@foxmail.com"

    使用了--global选项,该系统上所有项目默认使用此配置。如果需要针对单独项目进行配置,只需要执行不带--global的命令即可。
  • 查看配置信息
    git config --list

Git基础 Git Basics

  • 从现有目录初始化Git仓库
    git init
  • 克隆现有仓库
    git clone https://gitee.com/csensix/testgit.git
克隆仓库的格式:git clone [url]
自定义本地仓库目录名:git clone https://gitee.com/csensix/testgit.git mytest
  • 查看提交历史(友好版)
    git log --oneline --decorate --graph --all

    --oneline 相当于 --pretty=oneline --abbrev-commit 的缩写

    Git分支 Git Branching

  • 新建分支
    git branch dev

    新建一个开发分支,命名dev
  • 切换分支
    git checkout dev

    也可以执行命令:git checkout -b dev,相当于新建分支并切换到新分支
  • 合并分支
    git merge dev

    假设已经执行了git checkout master,切回到了master分支
    防止fast-forward提交,git merge --no-ff -m "merge with no-ff" dev
  • 删除分支
    git branch -d dev
  • 查看本地所有分支
    git branch
  • 查看远程分支
    git branch -r
  • 查看本地和远程所有分支
    git branch -a
  • 合并时遇到冲突
    可用git status查看哪些文件有冲突,解决冲突后,每个文件执行git add,最后执行git commit

    例如:git add readme.txt -> git commit -m "conflict fixed"
  • 推送本地仓库到远程分支
    git push origin master

    或者 git push origin dev:dev 冒号前是本地分支,冒号后是远程分支
  • 跟踪远程分支
    git checkout -b dev origin/dev

    git checkout -b [branch] [remotename]/[branch]
    快捷方式:git checkout --track origin/dev
    本地分支设置不同名字:git checkout -b new_dev origin/dev
    设置或修改跟踪的上游分支:git branch -u origin/serverfix
    (备注:-u--set-upstream-to
    @{upstream}@{u} 是引用上游分支的快捷方式
  • 查看所有本地与远程分支的对应关系(跟踪分支)
    git branch -vv
  • 拉取远程并合并分支
    git pull origin [remotename]:[branch]

    如果远程分支是与当前分支合并,则冒号后面的部分可以省略:
    git pull origin [remotename]
    git pull 相当于 git fetchgit merge 的快捷方式
    拉取远程分支 git fetch origin dev
    合并远程分支到某分支 git merge origin/dev next
    合并远程分支到当前分支 git merge origin/dev
    检出(checkout)前,要留意你的工作目录和暂存区里那些还没有被提交的修改,它可能会和你即将检出的分支产生冲突从而阻止 Git 切换到该分支。 最好的方法是,在你切换分支之前,保持好一个干净的状态。
    从远程拉取本地不存在分支 git checkout -b 本地分支名 origin/远程分支名
  • 删除远程分支
    git push origin --delete dev

打标签 Tagging

  • 列出标签
    git tag

    可以使用特定的模式查找标签,如 git tag -l 'v1.8.5*'
  • 创建标签
    标签分类:轻量标签(lightweight)与附注标签(annotated)。一般使用附注标签,可以记录更多信息。

    附注标签 git tag -a v1.4 -m "my version 1.4"
    轻量标签 git tag v1.4-lw ,不需要提供-a-m选项
    查看标签提交信息 git show v1.4
    给之前的提交创建标签 git tag -a v1.2 9fceb02 ,结尾是提交的(部分)校验和
  • 共享(远程同步)标签
    命令 git push origin [tagname]

    如:git push origin v1.4
    如果需要一次性同步所有标签,可以执行:git push origin --tags
    获取远程标签(本地没有):git fetch origin tag v1.4
  • 删除标签
    命令 git tag -d [tagname]

    如:git tag -d v1.4-lw
    删除远程标签:git push origin :refs/tags/v1.4

保存和恢复工作进度(stash)

注:在未add之前才能执行stash!!!!
  • 快速暂存,恢复到修改之前的状态
    命令 git stash
  • 暂存,可添加注释
    命令 git stash save message
  • 查看所有暂存列表
    命令 git stash list
  • 恢复1
    命令 git stash pop stash@{num}

    num是可选项,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0},通过git stash list可查看具体值。只能恢复一次
  • 恢复2
    命令 git stash apply stash@{num}

    num是可选项,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0},通过git stash list可查看具体值。可回复多次
  • 删除某一条暂存
    命令 git stash drop stash@{num}

    删除一条保存的工作进度,此命令的stash@{num}是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}
  • 删除所有暂存
    命令 git stash clear

添加新评论