Git学习笔记——记录我的第一篇学习博客

推荐廖雪峰老师的Git学习教程

Git是目前世界上最先进的分布式版本控制系统。

创建版本库

mkdir <dir>            //创建一个空目录<dir>
cd <dir>                 //跳转至目录<dir>
pwd                       //显示当前目录
git init                    //在当前目录初始化一个Git仓库

创建一个Author,让Git知道是谁在操作这个Git仓库,需要用到Name、Email

git config --global user.email "Your [email protected]"
git config --global user.name "Your name"

提交文件至Git

git add <file>            //将文件file添加到当前的Git仓库
git commit -m <"message">            //将git add添加的文件提交到Git仓库,<"message">为本次提交的说明,每次提交都会生成一个对应的commit_id
git status            //查看当前状态

修改与删除

修改版本
git log            //按照由近到远的顺序显示最近提交的日志,会显示出每一次提交的commit_id
git reflog            //记录每次的命令

Git中有一个指向当前版本的HEAD指针,只需要改变这个指针指向的commit_id就可以更改版本:

git reset -- hard commit_id            //使HEAD指针指向commit_id版本
关于工作区与版本库

工作区:项目文件保存的目录;
版本库:在工作区中有一个隐藏的文件夹.git,就是Git的版本库;
版本库中,有暂存区、主分支master、自己创建的其他子分支、以及指针HEAD;

git add 实质上是将工作区的文件修改添加到暂存区;
git commit 实质上是将暂存区中的内容提交到当前分支上;

撤销修改
git checkout -- <file>            //直接丢弃工作区的修改
git reset DEAD <file>            //撤销暂存区的修改
git reset -- hard commit_id            //撤销commit_id的提交
git checkout -- <file>            //实际上是用版本库中的文件替换工作区的版本,可以用于还原修改与删除
删除文件
rm <file>            //删除工作区文件
git rm <file>            //删除工作区与版本库中的文件

Git分支管理

初始化Git仓库时会创建一个唯一的主分支master,master指向最新的提交,HEAD指针指向master,表明当前的提交点;
每一次提交,master向前移动一步,指向最新的提交;
HEAD指针指向新的master,完成版本更新;

当创建一个新的分支dev时,Git创建了一个新的指针,此时dev指向与master相同的提交;

将HEAD指针指向dev,使得新的分支dev成为当前使用的分支,后面所有的提交都会提交至dev分支;

git commit提交一次后,dev分支向前移动一步,HEAD指针指向dev分支上最新的提交,但master不变;

当dev分支上的工作内容完成,需要将dev分支合并至master分支,只需使master指向dev的最新一次的的提交即可。

相关指令
git branch <dev>            //创建dev分支
git checkout <dev>            //切换至dev分支
git checkout -b <dev>            //创建dev分支,并切换至dev分支
git branch            //查看所有分支,当前分支前有一个*号
合并分支步骤
  • 切换至master分支,使master分支成为当前分支 git checkout master
  • 将指定分支dev合并至当前分支 git merge
  • 删除子分支dev git branch -d
git merge <dev>            //将dev分支合并至当前分子
git branch -d <dev>            //删除dev分支
git branch -D <dev>            //删除一个没有合并过的分支,当这个分支的所有工作内容都不想要时,可以用次命令
git merge --no-ff -m "message" <dev>            //将dev分支合并至当前分支,并保留合并分支的所有信息

临时工作保存

git stash            //保存当前的工作现场
git stash list            //显示已经保存的所有工作现场
git stash apply stash@{0}            //恢复指定的stash
git stash drop             //删除stash
git stash pop            //恢复stash并删除

标签管理

git tag <name>            //创建一个名为name的标签
git tag            //查看所有标签
git tag -a <tagname> -m "message"            //创建一个名为tagname的标签,标签的信息为message
git show <tagname>            //查看标签tagname的信息
git push origin <tagname>            //推送一个本地标签;
git push origin --tags            //推送全部未推送过的本地标签;
git tag -d <tagname>            //删除一个本地标签;
git push origin :refs/tags/<tagname>            //删除一个远程标签。

远程操作

git clone <https://github.com/google/glog.git>            //将https://github.com/google/glog.git上的项目下载至本地

猜你喜欢

转载自www.cnblogs.com/kevinyin2018/p/9815437.html