Git:分布式版本控制系统,由C语言编写,每个人的电脑上都有一个版本库,其中一台电脑作为“中央处理器”,Git跟踪并管理的是修改,而非文件
一、git基本命令
安装完成后设置自报机器家门
git config --global user.name/user.email/ color.ui true
git一些概念:
git版本库:git init后生成的.git目录,就是git的版本库,版本库中包括stash区(暂存区)。还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD.
git工作区:即本机上保存我们修改文件的文件目录,包含.git版本库的目录 ,也就是我们修改的那些文件。
git暂存区:存放git add后数据的区域。
1.创建版本库(仓库):
进入目录,会生成.git目录(用ls -ah查看)
git init
2.把文件添加到仓库,把要提交的修改放到暂存区
git add file
3. 把文件提交到仓库 一次性把暂存区的所有修改提交到分支 也等于打快照
git commit -m "描述" file
4.查看仓库文件的状态
git status
5.查看文件被修改了什么 (前提还没有add和commit)
git diff
6.查看提交日志
git log
#--pretty=oneline参数减少输出信息
7.版本回退到上个版本
git reset --hard HEAD^
#(HEAD当前版本,HEAD^上个版本,^^^前几个版本)HEAD~100
#如果想要恢复指定版本,将HEAD^改为git的版本号
8. 查看git的所有执行过的命令(可以看到每次提交的修改的版本号)
git reflog
9.丢弃工作区的修改(恢复到最新一次git commit或者add的状态)
git checkout -- file
10.把暂存区的修改撤销(回退到工作区)HEAD表示最新版本(如果修改了之后add了,先撤销暂存区修改,然后丢弃工作区修改)
git reset HEAD file
11.删除一个文件
git rm file
二、分支
HEAD指向当前分支,master指向提交分支。提交后master指向提交分支,HEAD指向当前分支即master
1.创建分支:
git switch -c dev #创建dev分支并-b切换 git checkout -b dev
git branch dev #创建dev分支
git checkout dev #切换分支
git switch master #切换分支
2.查看当前分支
git branch
3.分支合并
git merge dev #dev分支到当前分支 --no-ff参数表示合并后会创建一个新的commit,有历史记录
4. 删除dev分支
git branch -d dev
#-D参数表示强行删除
5.把分支内容(还没有提交)存到一个stash区(在没完成但是需要拉新分支的时候)
git stash
6.恢复stash区内容
git stash apply
7.删除stash区内容
git stash drop
8.恢复stash区内容同时删除stash区的内容
git stash pop
8.查看stash区
git stash list
9. 将该分支号的提交复制到当前分支
git cherry-pick 分支号
10.查看远程库的信息
git remote
11.推送本地master分支到远程的origin分支
git push origin master
12.克隆远程分支到本地
git clone 分支
#默认只能看到master,如果有其它分支,需要创建一个git checkout -b dev origin/dev
13.拉取分支
git pull
#失败的时候要建立本地分支和远程分支连接 git branch --set-upstream-to=origin/dev dev
14.把本地未push的分叉提交历史整理成直线
git rebase
三、标签
1.给当前分支打标签
git tag name (提交的版本id)
2.查看标签
git tag
3.查看标签信息
git show tagname
4. 删除标签名
git tag -d 标签名
5.推送一个本地标签
git push origin <tagname>
6.推送全部未推送过的本地标签
git push origin --tags
7. 删除一个远程标签
git push origin :refs/tags/<tagname>
廖雪峰的这个git教程很不错,想学习的可以看看:git教程