logo头像

吾之初心,永世不忘

git基本命令总结

本文于324天之前发表,文中内容可能已经过时。

git常用命令

安装

 win10:  安装就是正常下载安装
deepin:  $ sudo apt-get install git

安装完成后的配置

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

简单的命令行

命令 解释
mkdir learngit 创建learngit目录
cd learngit 进入learngit这个目录
git init 初始化此目录
cd .. 返回当前目录的上一级
git add a.txt 把文件添加到仓库
git commit -m "提交说明" 把文件提交到仓库
git status 查看仓库的当前状态
git diff a.txt 查看a.txt的修改记录
git log 查看提交日志
git reset --hard HEAD^ 返回到当前的上一个版本
git reset --hard 版本号 版本号写前几位就可以
git reflog 查看回退的版本
git checkout -- readme.txt 撤销文件在工作区的修改
git reset HEAD readme.txt 暂存区的修改撤销,放回工作区
git rm a.txt 删除a.txt
git checkout -- a.txt 误删的文件恢复,丢失最近一次的修改

远程仓库

  • 创建SSH Key
    ssh-keygen -t rsa -C "youremail@example.com"
  • 登陆GitHub,打开“Account settings”,“SSH Keys”页面,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
    (在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件)
  • 提交
    git push origin master
  • 克隆到本地
    git clone 仓库的地址
    (比如:git@github.com:lionliuchen/ourlove.git)

    分支

命令 解释
git branch dev 创建dev分支
git checkout dev 切换到dev分支
git checkout -b dev 创建并切换
git branch 查看当前分支
git merge dev 将dev合并到当前分支
git branch -d dev 删除dev分支
git merge --no-ff -m "提交信息" dev 禁用Fast forward的合并dev分支
git stash 把当前工作现场“储藏”起来,修复bug
git stash apply 恢复后工作,stash内容并不删除
git stash drop 删除stash内容
git stash pop 恢复的同时把stash内容也删了
git branch -D <name> 强制删除没有合并的分支
git remote -v 本地和远程的连接信息
git push origin master 推送分支

多人协作的工作模式通常是这样:

  • 首先,可以试图用git push origin <branch-name>推送自己的修改;
  • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  • 如果合并有冲突,则解决冲突,并在本地提交;
  • 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
  • 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

git rebase把分叉的提交历史“整理”成一条直线

标签

命令 解释
git tag <name> 打一个新标签
git tag 查看所有标签
git log --pretty=oneline --abbrev-commit 查看历史提交的commit id
git tag <tagname> <commit id> 给之前的打标签
git show <tagname> 查看标签信息
git tag -a v0.1 -m "说明" 1094adb 创建带有说明的标签
git tag -d v0.1 删除标签v0.1
git push origin <tagname> 推送一个本地标签
git push origin --tags 推送全部尚未推送到远程的本地标签
git tag -d <tagname> 删除一个本地标签
git push origin :refs/tags/<tagname> 删除一个远程标签(先删本地)

总结

  • 有些命令和linux的命令很像,建议了解一下linux基础命令,还有就是多练习!!!
  • 参考廖雪峰的Git教程,我写的全是提取的关键点,刚接触Git的可以看看他的详细教程。