Git学习
Git的全局设置
git config --global user.name 'your name'
git config --global user.email 'your email
-
git config --global color.ui true
让Git显示不同的颜色 -
git config -list
查看全局设置
Git创建本地版本库
mkdir git-guide
cd git-guide
-
pwd
查看当前文件路径 -
git init
将当前文件变成git可以管理的仓库 -
ls -ah
查看所有文件,可以看到隐藏的.git文件
新建文件并提交至仓库
-
vi readme.txt
新建文件并进入编辑 -
esc
,shift+: wq
,enter
保存退出; -
:w
保存不退出 -
:e!
放弃所有修改,从上次保存文件开始再次编辑 -
:wq!
强制保存并退出 -
w!
强制保存不退出 -
:q
不保存退出 -
git add readme.txt
添加文件,可以添加多个git add f.txt f2.txt
git commit -m'decs相关内容描述说明'
-
git status
查看仓库的状态
修改相关文件
-
vi readme.txt
进入编辑修改 -
git diff
显示所有修改过的文件(不会显示新建文件的记录) -
git diff readme.txt
显示指定文件的修改记录 -
git add readme.txt
添加,可以合并两次修改提交一次 -
git commit -m'desc1'
提交
查看版本记录并回退或者前进
-
git log
查看详细版本信息或者使用git log --pretty=online
简洁版信息 -
git reset -hard HEAD^
回退到上一个版本,HEAD^^
上上个版本;c9207
查看log到指定的版本中 -
cat readme.txt
可查看文件内容是否真回到指定版本中
暂存区的理解
git版本仓库分三部分:工作区:主要是新建文件,或者修改还没add之前的一些文件;暂存区:经过指git add 之后的一些文件;然而git diff主要就是查看工作区与暂存区之间的差异;HEAD(master):就是版本文件了,也就是暂存区经过git commit 之后的文件;可以 git diff --cached可以查看改动
-------版本库------------------
| |
git diff -cached |
| |
----暂存区----- git diff HEAD
| |
git diff |
| |
-------工作区------------------
撤销修改
分两种情况:
工作区的文件撤销修改
-
git checkout -- readme.txt
或者丢弃所有修改改为-- .
在暂存区的修改
-
vim readme.txt
修改文件 -
git status
查看状态,可以看出未进入暂存区 -
git add
添加到暂存区 -
git status
再次查看状态 -
git reset HEAD readme.txt
将head版本区的文件放入暂存区, - 接下来将工作区的文件也改回之前
git checkout -- .
-
git status
进行查看状态
删除文件
-
rm test.txt
删除文件 -
git status
查看状态 -
git rm test.txt
产出暂存区的文件 -
git commit -m'remove a test.txt'
提交说明更新版本库文件
将本地仓库推送至远程仓库
git remote add origin git@github.com:coolpail/musicSearch
- 如果远程有README.md,则需要merge一下
git pull --rebase origin master
-
git push -u origin master
再上传至远程仓库 - 之后推送至远程仓库只要
git push origin master
将远程仓库克隆至本地
git clone git@github.com:coolpail/blog.git
分支管理
-
git branch
查看本地分支;git branch -v
详细信息;git branch -av
包括远程仓库在内的分支 -
git checkout -b dev
创建分支并进入 -
git checkout master
切换主分支 -
git merge dev
合并分支的内容 -
git branch -d dev
删除分支
标签相关
-
git checkout master
切换至主分支 -
git tag v1.0
默认打在最新提交的commit上 -
git tag v0.9 f9027
可以打在指定的log版本上 -
git tag -d v1.0
删除标签 -
git push origin v1.0
标签提交至远程仓库; `–tags推送所有标签 - 如果提交至远程仓库,再删除则先
git tag -d v1.0
本地删除;再git push origin :refs/tags/v1.0
远程删除;可以上github检验一下;