Git 学习与使用
一、创建版本库
创建文件
mkdir learngit //创建文件夹
cd learngit //定位
pwd //显示当前目录
git init //初始化为git管理的仓库
ls -ah //显示.git目录(用于Git跟踪管理版本库)
添加文件
git add readme.txt //添加新文件(到工作区)
git commit -m "add a new file" //提交至版本库
/ git commit -am "creat and add a new file"
二、版本管理
git status: 查看工作区状态
git diff <filename>: 查看修改内容
版本回退
git log: 显示提交日志
Git通过HEAD指针管理各版本
git reset --hard HEAD^ //回退到上一个版本
git reflog //记录每一条命令(查看版本号)
git reset --hard commit_id //版本穿梭
工作区和暂存区
工作区:我们操作的地方
版本库(Git管理的、广义):暂存区 & master分支
暂存区:git add的位置
版本库:git commit的位置(狭义的版本库)
管理修改
cat readme.txt:打印文件
git diff //查看working tree与stage差别
git diff --cached //查看stage与repository的差别
git diff HEAD //查看working tree与repository的差别
撤销修改
git checkout -- readme.txt: 丢弃工作区里的修改
readme.txt修改后还没放入暂存区 //退回到版本库
readme.txt修改后已经放入暂存区又做了修改 //退回到暂存区
git reset HEAD readme.txt: 把暂存区的修改撤销回工作区
删除文件
git rm <flie> //删除工作区和暂存区
git rm --cached <file> //删除暂存区
三、远程仓库
添加远程库
git remote add origin <网址> //关联远程仓库
git push -u origin master //把本地库推送到远程库(首次通过-u关联master分支)
git push origin master //推送到远程库
git remote -v //查看远程库信息
git remote rm origin //删除远程库(解除本地与远程库绑定)
从远程库克隆
git clone <网址>
四、分支管理
创建并合并分支
git checkout -b dev //创建新分支并切换
git branch //查看当前分支信息
git checkout master //切换回master
git merge dev //合并到master
git branch -d dev //删除dev分支
git branch -D feature //强行删除一个未合并的分支
git switch -c dev //创建新分支
git switch master //切换分支
解决冲突
git log --graph:查看分支合并图
无法合并时找到冲突手动修改
分支管理
git merge -no-ff -m "commit message" dev: 禁用Fast Forword的合并分支
Bug分支
git stash : 工作现场保存
git stash pop:工作现场恢复
多人协作
git remote -v
git push origin branch-name
如果推送失败,先用git pull抓取远程的新提交
合并后再push
git branch --set-upstream branch-name origin/branch-name
建立本地分支和远程分支的关联
git rebase:整理分支(成直线)
五、Tag
创建标签
git tag v1.0
git tag -a v1.0 -m "message" 1094abd //可拓展
git tag //显示所有tag
git tag show v1.0 //显示tag信息
操作标签
git push origin <tagname> //推送一个本地标签;
git push origin --tags //推送全部未推送过的本地标签;
git tag -d <tagname> //删除一个本地标签;
git push origin :refs/tags/<tagname> //可以删除一个远程标签。