前言
强烈推荐学GIT的小伙伴们到廖老师的官方网址学习。走你 -。-
GIT命令
git init 初始化一个版本库 git add 将需要提交的文件添加到git索引库,也称为暂存区,此时文件受到GIT管理 git commit -m 将索引库也就是暂存区的内容进行提交,提交至当前分支 git rm 用于删除一个文件。 git status 查看版本库状态 git log 查看提交历史 --pretty=oneline 更好的显示 git reflog 查看命令历史 git reset -hard commit_id (HEAD 指向当前版本,^上一个版本) git reset 版本号 文件 恢复指定文件 ssh-keygen -t rsa -C "youremail@example.com" 创建SSH Key git remote add origin git@github.com:用户名/项目名.git 本地和远程库关联 git push -u origin master Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。 git clone 从远程版本库克隆一个本地库 git branch 查看分支 git branch <name> 创建分支 git checkout <name> 切换分支 git checkout -b <name>创建+切换分支 git merge <name> 合并某分支到当前分支 --no-ff强制禁用Fast forward模式 git branch -d <name> 删除分支 git branch -D <name> 强行删除分支,删除一个没有合并过的分支 git log --graph 查看分支合并图 git log --graph --pretty=oneline --abbrev-commit git stash 当前工作现场“储藏”起来,用于还不想提交,但是想切换分支时使用 git stash list 保存的列表 git stash apply 切换到保存的状态 git stash drop 将保存的状态删除 git stash pop 切换到保存的状态并删除 git remote查看远程库的信息 -v显示更详细的信息 git tag <name> <版本号> 打标签,默认标签是打在最新提交的commit上的,-a指定标签名,-m指定说明文字 git tag 查看标签 git show <tagname>查看标签信息 git tag -d <name> 删除标签 git push origin <tagname> | --tags 将标签推送到远程 git push origin :refs/tags/<tagname>可以删除一个远程标签 git check-ignore 检查忽略文件
工作区和暂存区的概念
工作区 (Working Directory) ,就是你再电脑里能看到的目录
版本库 (Repository),工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
每次修改,如果不add到暂存区,那就不会加入到commit中。
撤销修改
文件已修改,未add到暂存区:git checkout -- file可还原
文件已修改,并add到暂存区未commit:git reset HEAD file git checkout -- file可还原
撤销删除
文件使用git rm删除但是并未commit:git reset HEAD file git checkout -- file可还原
分支管理
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev
相关网站
练习闯关: http://learngitbranching.js.org/
git官方文档: https://git-scm.com/book/zh/v2