Git


创建和回退


下载地址

https://git-scm.com/download

Git 全局设置:

设置用户信息 
   git config --global user.name "name"
   git config --global user.email “hello@tea.cn”
 查看配置信息
   git config --list

注意:上面设置的user.name和user.email并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置。

创建本地仓库执行命令:

git init

git分为工作区、暂存区、版本库:

版本库:.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

使用如下命令可以查看版本记录:

git log
//简短log
git log --pretty=oneline

git log --pretty=oneline --graph

查看我们的操作记录,查看版本号:

git reflog

使用如下命令查看当前工作树的状态:

git status

使用如下两条命令可以创建一个版本:

git add 文件名.格式
//git add *
git commit –m '版本提交说明1'

撤销工作区修改可以使用(没使用add):

git checkout -- 文件名.格式

把暂存区的修改撤销掉,重新放回工作区(使用了add,没使用commit):

git reset HEAD 文件名.格式

现在若想回到某一个版本,可以使用如下命令(使用了commit):

git reset --hard HEAD^

//或者回退1个/100个版本
git reset --hard HEAD~1
git reset --hard HEAD~100

假如我们现在又想回到回退前的版本(使用了commit),可以使用如下命令:

git reset --hard 版本号

对比工作区和某个版本文件的不同:

git diff HEAD -- 文件名.格式

对比两个版本间文件的不同:

git diff HEAD HEAD^ -- 文件名.格式

删错了,可以直接使用(还在工作区,没使用add):

git checkout –- 文件名.格式

确实要从版本库中删除文件:

git rm 文件名.格式
git commit –m '版本提交说明'

远程仓库


查看远程仓库:

git remote 	
git remote -v

本地仓库,添加到远程仓库:

git remote add
git remote add <shortname> <url> 
git remote add origin https://gitee.com/...../....git 	

从远程仓库克隆:

git clone
git clone [url]

推送到远程仓库:

git push
git push [remote-name] [branch-name]
git push origin master

从远程仓库拉取:

git pull
git pull [short-name] [branch-name]	
git pull origin master

如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories )。解决此问题可以在git pull命令后加入参数–allow-unrelated-histories:

git pull origin master --allow-unrelated-histories

分支管理


截止到目前只有一条时间线,在git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交0的,所以,HEAD指向的就是当前分支。

查看当前有几个分支并且看到在哪个分支下工作:

git branch

列出所有远程分支:

git branch -r	

列出所有本地分支和远程分支:

git branch -a	

创建一个分支dev,并切换到其上进行工作:

git checkout -b dev
//只创建分支
//创建分支命令格式:git branch [name]
git branch dev

推送至远程仓库分支命令格式:

git push [shortName] [name]

切换回master分支:

//切换分支命令格式:git checkout [name]
git checkout master

当前在master分支,把dev分支的工作成果合并到master分支上:

git merge dev
//情况一:Fast-forward,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快
//情况二:冲突了,先处理冲突文件,在add、commit提交冲突文件。
//情况三:快速合并不能成功而且合并时没有冲突,这个时候会合并之后并做一次新的提交,ctrl+x

强制禁用fast-forward模式:

git merge --no-ff -m '版本提交说明' dev

合并完成后,就可以放心地删除dev分支:

git branch -d dev

想把当前分支“储藏”起来,切换到别的分支:

git stash
//切换回来后
//git stash list
git stash pop //恢复工作现场

标签


列出已有的标签:

git tag

创建标签,将标签推送至远程仓库:

git tag [name]			
git push [shortName] [name]

检出标签:

git checkout -b [branch] [name]	

github


克隆项目

git clone ...ssh...

推送分支,就是把该分支上的所有本地提交推送到远程库:

git push origin 分支名称

将本地分支跟踪服务器分支:

git branch --set-upstream-to=origin/远程分支名称 本地分支名称

推送分支,就是把该分支上的所有本地提交推送到远程库:

git push
git push origin 分支名称

从远程分支上拉取代码:

git pull orgin 分支名称

git三剑客

配置


作用域:

//local只对某个仓库有效
git config --local

//global对当前用户所有仓库有效
git config --global

//system对对系统所有登陆的用户有效
git config --system

显示config的配置-加--list

git config --list --local

git config --list --global

git config --list --system

配置user信息

git config --global user.name 'your_name'
git config --global user.email 'your_email'


文章作者:
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 !
  目录