git命令速记


前言

git是一个很神奇的工具,是由Linux的发起者linus用c语言编写的…
最常用的其实只有十几个命令,其他的可以等到真正的团队合作的时候去复习一下。
在这里记录一下常用命令,想要学习git推荐廖雪峰的Git教程

状态图

git_status.jpg

安装git

基本操作

1
2
git #检测是否已安装git
sudo apt install git

git常用命令

  • 创建版本库

    1
    2
    3
    4
    mkdir mygit
    cd mygit
    git init
    ll #可以发现多了一个.git目录
  • 添加到暂存区

    1
    git add readme.txt
  • 提交到仓库

    1
    2
    git commit -m "this is a  readme file"
    -m message
  • 查看工作状态

    1
    git status
  • 查看修改内容

    1
    git diff
  • 切换版本

    1
    2
    git reset --hard commit_id
    HEAD是当前版本
  • 查看提交历史

    1
    2
    3
    4
    5
    6
    7
    git log
    git reflog #查看命令历史,可以用于重返未来
    git log --graph #查看分支合并图
    git log --graph --pretty=oneline --abbrev-commit #查看详细log
    终极版:
    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    git lg #查看效果
  • 撤销工作区的修改

    1
    2
    git checkout -- readme.txt
    工作区的修改会被还原,还原成暂存区的内容
  • 还原暂存区的内容(用HEAD版本的内容)

    1
    git reset HEAD readme.txt
  • 从版本库中删除文件

    1
    2
    git rm test.txt
    git commit -m "remove test.txt"

远程库管理

  • 关联远程库

    1
    2
    git remote add origin git@github.com:xxxxx/xxxxx
    origin是远程库的名字
  • 将本地库推送到远程库

    1
    2
    3
    4
    5
    6
    git push -u origin master
    从本地的master推送到远程的origin
    第一次clone或push可能会有ssh警告
    第一次需要添加-u参数,以后可以直接
    git push origin master
    git push origin new_branch #推送new_branch分支到远程库
  • 克隆远程库

    1
    2
    cd moumulu
    git clone git@github.com:xxxx/xxxx
  • 将远程库合并到本地

    1
    2
    3
    git pull
    如果提示no tracking information,说明本地分支与远程分支连接没有创建,使用:
    git branch --set-upstream-to <branchname> origin/<branchname>
  • 查看远程库信息

    1
    2
    git remote
    git remote -v

分支管理

  • 查看当前分支

    1
    git branch
  • 创建分支

    1
    2
    3
    4
    git checkout -b newbranch
    -b 表示创建并切换,相当于
    git branch newbranch
    git checkout newbranch
  • 根据远程分支创建本地分支

    1
    git checkout -b abc origin/abc #abc为分支名
  • 切换分支

    1
    git checkout branchname
  • 合并分支到当前分支

    1
    2
    3
    4
    5
    git checkout master
    git merge branchname
    建议用:
    git merge --no-ff -m "blabla..." branchname
    这样不使用快速合并,可以在log里保留记录
  • 删除分支

    1
    2
    git branch -d branchname
    git branch #查看

标签管理

  • 查看标签

    1
    git tag
  • 添加标签

    1
    2
    git checkout branchname
    git tag <tagname>
  • 对某次提交打标签

    1
    2
    3
    4
    git tag v0.9 a3k9359
    git tag -a v0.1 -m "version v0.1 released" a3k9359
    -a 指定标签名
    -m 添加注释
  • 查看标签信息

    1
    git show <tagname>
  • 删除标签

    1
    git tag -d v0.1
  • 推送某标签到远程

    1
    git push origin v1.0
  • 删除远程标签

    1
    2
    git tag -d v0.2 #先删除本地标签
    git push origin :refs/tags/v0.2 #删除远程标签

自定义git

  • 忽略特殊文件

    1
    2
    3
    根目录下新建 .gitignore 文件,写入文件名或.exe等类型
    git add -f a.exe #强制添加到git
    git check-ignore -v a.exe #检查规则
  • 配置文件

    1
    .git/config #配置文件存放地

参考

欢迎与我分享你的看法。
转载请注明出处:http://taowusheng.cn/