Git常用命令学习总结
Git安装
在linux上安装git
yum或apt安装
CentOS或redhat:#yum install git -y
Debian或Ubuntu Linux:sudo apt-get install git
源码安装
先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install
安装完成后输入#git,返回帮助信息证明安装成功。
参考:https://git-scm.com/download/linux
windows安装
Git官网下载安装程序,默认选项Next安装即可
https://git-scm.com/downloads
安装完成后再在开始菜单中找到Git-Bash双击打开会弹出一个类似命令行的东东,证明安装成功。
Git 基础概念
工作区域(working directory)
就是你本地电脑里创建的那个目录,例如文件夹11
版本库(repository)
在初始化完成创建git之后,工作区会有一个隐藏目录.git既是版本库,用来管理跟踪版本,其中最重要的一个部分就是暂存区和Git自动创建的第一个分支master以及指向这个分支的一个指针HEAD。
暂存区域(stage)
工作流程
1.在工作目录中添加修改文件;
2.将需要进行版本管理的文件放入暂存区;
3.将暂存区的所有文件提交到当前分支,提交之后,暂存区就没有任何内容了。
Git配置
在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com" /Github\gitlab上的已注册账户/
--global参数 表示这台服务器上所有的Git仓库都会使用这个配置
创建版本库(repository)
$ mkdir 11 /创建一个目录,这个目录里面的所有文件都可以被Git管理追踪/
$ cd 11 /切换到该目录下/
$ pwd
/c/Users/Administrator/11
$ git init /创建初始化版本库/
Initialized empty Git repository in C:/Users/Administrator/11/.git/
注意:Git和所有的版本控制系统一样只能跟踪文本文件的改动,建议文本编码使用标准的UTF-8编码。
Git常用命令
添加文件到仓库
$ git add readme.txt
提交文件到仓库
$ git commit -m "write a readme file"
-m 后跟提交描述说明
git status /查看仓库当前的状态/
git log /查看提交历史,以便确定要回退到哪个版本/
显示从最近到最远的提交日志
git reset /回退版本/
在Git中,用HEAD表示当前版本,也就是最新的提交的版本;上一个版本就是HEAD,上上一个版本就是HEAD^。往上N个版本就是HEAD~N
所以回退到上一个版本:
git reset --hard HEAD^
回退到制定commit ID版本:
git reset --hard commit_id
git reflog /查看历史命令,以便确定要回到未来的哪个版本/(后悔药)
git checkout -- file /丢弃工作区的修改,就是用版本库里的版本替换工作区的版本/
如果file修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
如果file已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
删除版本库中的文件
rm filename 删除工作区中的文件
git rm filename /删除版本库中的文件之后再提交文件就从版本库中删除了/
git commit -m "remove filename"
远程仓库Github
与远程仓库建立互信
1.打开Gitbash(Shell),创建SSH Key;
$ ssh-keygen -t rsa -C "github上注册的邮箱名"
一路回车,生成秘钥
id_rsa是私钥,id_rsa.pub是公钥
2.复制公钥内容粘贴到github上Settings->SSH and GPG keys->New SSH key
cd .ssh
添加远程库
1.Create a new repository
2.关联本地仓库
远程库创建完成后默认是空的,现在把本地已有的仓库关联给这个新创建的远程库。
git remote add origin git@github.com:github账户名/11.git
远程库的名字默认叫做origin
3.推送本地库的内容到远程库上
git push -u origin master
推送成功后本地库与远程库就一样了,本地库更改提交后既可以推送到远程库中
git push origin master
从远程处克隆
1.创建新的远程仓库
勾选initialize
2.克隆远程仓库
git clone git@github.com:用户名/testframework.git
分支管理
仅有主分支时,master分支是一条线,master指向最新的提交,HEAD指向master;
当创建新的分支时,Git新建一个dev指针,指向master相同的提交,再把HEAD指向dev,从而表示当前分支在dev上