标签:file alt ica 回退 ini 恢复 global git push wiki
摘自廖雪峰《Git教程》https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137402760310626208b4f695940a49e5348b689d095fc000
一 Git简介
分布式版本控制系统。开源(免费)
--Windows下安装完Git设置用户名和邮箱
--Git新建用户名和邮箱的原因:分布式版本控制系统用于各电脑自报家门
#新建(编辑)Git用户名
#global参数:该机器上的所有Git仓库均使用本配置
$ git config --global user.name "ex-fudaiwu001"
$ git config --global user.email "fudaiwu@cisetech.com"
#查看Git用户名和邮箱
$ git config user.name
$ git config user.email
--Windows下初始化Git仓库:选择一个合适的地方,创建一个空目录,然后调用git init命令
--所有的版本控制管理系统(包括Git),只能跟踪文本文件的改动,如TXT、网页、所有的程序代码等,不能跟踪图片、视频、word等二进制文件等的改动
--建议使用UTF-8编码,强烈不建议使用Windows自带的记事本编辑任何文件(记事本本身设计UTF-8编码的问题),建议使用Notepad++等工具编辑文本文件(将其设置为UTF-8编码即可)
--添加文件到Git仓库:
使用命令 git add <file>,可反复多次使用,添加多个文件
使用命令 git commit -m <message>
eg.
$ git add readme.txt #将文件放入暂存区(stage)
$ git commit -m "create a readme.txt" #把暂存区的修改提交到所有分支
git status : 查看工作区状态
git diff:查看修改内容
git log [--pretty=oneline]:显示从最近到最远的提交日志
# HEAD^ —— 回退到上个版本 HEAD^^ —— 回退2个版本 HEAD~100 —— 回退100个版本
git reset --hard HEAD^ :回退到上个版本
git reset –hard 1094a:1094a为回退前的commit id,返回到回退前的版本,版本号没有必要写全,能够唯一区分即可(未关闭git log操作时可以定位到回退前的commit id)
git reflog:记录每一次操作命令,关闭了git log通过该命令查找回退前的commit id
--工作区:Git仓库名称(本地仓库),如learnGit
--版本库:工作区里的隐藏目录 .git
--暂存区:Git的版本库里包含很多东西,其中最重要的就是被称为stage(或者叫index)的暂存区,还有Git为我们创建的第一个分支master,以及指向master的指针HEAD
前面提到的概念理解:
git add:将文件添加仅暂存区
git commit:将暂存区的所有内容提交到当前分支
git rm <file>
注意:该部分没有实际验证过,不保证正确性
#在GitHub商新建一learngit仓库,复制仓库地址
#添加远程库
$git remote add origin git@github.com:XXX/learngit.git # origin为远程仓库git@github.com:XXX/learngit.git的别名,可以修改;XXX为个人的GitHub账户 红色标注部分可直接从GitHub仓库中复制 该命令需在本地¥仓库下执行
$git push -u origin master #第一次推送master分支的所有内容
$git push -u origin master #第一次推送本地仓库的master分支的所有内容
$git push origin master #第一次推送后,每次推送本地仓库的master分支的内容
#进入计划的本地仓库位置(如D:\leanrGit文件夹下)
#克隆GitHub商的远程仓库到本地仓库
$git clone git@github.com:XXX/learnGit.git
--Git里,master为默认分支,也是住分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的。HEAD指向的是当前分支
--开始时,master分支是一条线,Git用master指向最新的提交
--每次提交,master分支都会向前移动一步,这样,随着不断的commit,master分支会越来越长
--创建新的分支时,例如dev,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,表示当前分支在dev上
--分支创建快的原因:仅仅新增了一个指针,改变了一下HEAD指针的指向
$git checkout -b dev
等效于如下的命令:
$git branch dev
$git checkout dev
使用git branch查看当前分支
$git branch
* dev
master
--再次提交,此时的提交便是针对dev分支,而与master分支无关
--加入dev商的工作完成了,江dev合并到master分支上
$git checkout master #先切换到master分支商
$git merge dev
--合并完成后,删除dev分支,分支提交完成
$git branch -d dev
$git branch #再次查看分支
* master
$git status #查看各分支状态
$git log #查看分支合并情况
场景:当前分支未commit(工作进行到一半),需要创建新的分支进行一临时紧急的操作,直接切换到其它分支,当前分支的工作会丢失
解决方法:将当前工作现场stash(贮藏、隐藏)一下,再切换到其它分支工作
$git stash #隐藏当前分支,假设为dev分支
$git checkout master
$git checkout -b issue101 #新建一用于修复101Bug的分支
....... 修复完成后删除该分支
$git checkout dev #返回dev分支
$git stash list #查看隐藏区
stash@{0}:WIP on dev:f52c633 add merge
$git stash apply stash@{0} #恢复隐藏内容
$git stash drop stash@{0} #删除隐藏内容
以上两步可一步实现,如下:
$git stash pop #恢复的同时把stash内容删除
标签:file alt ica 回退 ini 恢复 global git push wiki
原文地址:https://www.cnblogs.com/jqjx/p/10424720.html