git使用教程/常用命令

工作区和版本库的概念

  1. 工作区:就是你在电脑里能看到的目录
  2. 版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。用git add把文件添加进去,实际上就是把文件修改添加到暂存区;用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

本地仓库

  1. 在本地右击新建一个文件夹
  2. 执行git init 命令把这个目录变成Git可以管理的仓库,这时会多出来一个.git的目录,如果没有,那就是隐藏了。
  3. 把新建的文件添加到仓库:git add test.txt
  4. 把文件提交到仓库:git commit -m "wrote a readme file"
  5. 查看状态(可以查看当前有哪些文件文件待提交):git status
  6. 显示从最近到最远的提交日志:git log
  7. 版本回退,退到上一个版本:git reset --hard HEAD^ //上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100
  8. 版本回退,退到指定的版本:git reset --hard 1094a //1094a是版本号的前5位数
  9. 查看历史命令: git reflog
  10. 丢弃工作区的修改,一种是文件自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态:git checkout -- file
  11. 把暂存区的修改撤销掉(unstage),重新放回工作区:git reset HEAD <filename>
  12. 删除文件:git rm,并且提交 git commit -m "remove <filename>"
  13. 把误删的文件恢复到最新版本:git checkout -- test.txt

远程仓库

  1. 创建github账号
  2. 创建SSH Key(在本地命令行运行):ssh-keygen -t rsa -C "youremail@qq.com"
  3. 登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容(在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件)。为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的。
  4. 在GitHub上面创建一个仓库:右上角找到“Create a new repo”按钮,在Repository name填一个仓库名字,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。现在,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
  5. 在本地关联远程库:git remote add origin git@github.com:michaelliao/learngit.git(把上面的michaelliao替换成你自己的GitHub账户名,添加后,远程库的名字就是origin)
  6. 把本地库的所有内容推送到远程库上:git push -u origin master(用git push命令,实际上是把当前分支master推送到远程)。
  7. 从现在起,只要本地作了提交,就可以通过命令:git push origin master把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库。

从远程库克隆到本地

  1. 假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。首先,登陆GitHub,创建一个新的仓库,名字叫gitskills
  2. 用命令git clone克隆一个本地库:git clone git@github.com:michaelliao/gitskills.git(注意把Git库的地址换成你自己的)

分支

  1. 创建一个分支:git checkout -b dev(git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:git branch devgit checkout dev
  2. 查看当前分支:git branch(git branch命令会列出所有分支,当前分支前面会标一个*号)
  3. 把dev分支的工作成果合并到master分支上:git merge dev(git merge命令用于合并指定分支到当前分支。)
  4. 删除dev分支:git branch -d dev
  5. switch: git switch -c dev(创建分支并切换),git switch master(切换到已有的master)
  6. 储存现场工作情况:git stash(现在,用git status查看工作区,就是干净)
  7. 查看临时存储的文件:git stash list
  8. 恢复临时存储的文件:一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;另一种方式是用git stash pop,恢复的同时把stash内容也删了。
  9. 在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
  10. 丢弃没有被合并的分支:git branch -D <name>强行删除。
  11. 查看远程库的详细信息:git remote -v
  12. 推送master分支:git push origin master
  13. 创建远程origin的分支dev到本地:git checkout -b dev origin/dev
  14. 指定本地dev分支与远程origin/dev分支的链接:git branch --set-upstream-to=origin/dev dev
  15. 把本地未push的分叉提交历史整理成直线:rebase

标签

  1. 切换到需要打标签的分支上:git branch
  2. 打标签:git tag <name>
  3. 查看所有标签:git tag
  4. 对指定的commit id打标签:git tag v0.9 f52c633
  5. 删除标签:git tag -d v0.1
  6. 推送标签到远程:git push origin <tagname>
  7. 一次性推送全部尚未推送到远程的本地标签:git push origin --tags
  8. 如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:git tag -d v0.9
  9. 然后,从远程删除。删除命令也是push,但是格式如下:git push origin :refs/tags/v0.9
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值