Git常用操作命令

参考:GIT常用操作命令总结(一)

本文总结了一些Git的常用命令,以供参考:

1、在Windows上安装Git

安装完成后,还需要最后一步设置,在命令行输入:

git config –global user.name “YourName”
git config –global user.email “email@example.com”

2、克隆现有仓库

git clone [url] [自定义name]	

3、创建版本库

首先,选择一个合适的地方,创建一个空目录:
$ cd /d/appData
$ mkdir gitRepo
$ cd gitRepo
$ pwd
/d/appData/gitRepo
##pwd命令用于显示当前目录
##然后,通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /d/appData/gitRepo/.gi

4、把文件添加到版本库

$ git add index.txt
$ git commit -m "add index.txt"
$ git push
## add 命令把文件提交到缓存区(跟踪)
## commit 把缓存区文件提交到版本库,-m 参数是指定comments
## [添加提交记录,并且分支指向前移]
## 可以add多次,一次commit

5、查看版本库状态

$ git status
该命令查看到的结果分为两部分:
一,add到缓存区内等待被commit到版本库的更改。
二,工作区内的还未add到缓存区的更改

6、忽略文件

示例:

*.[oa]
*~
.idea
*.iml
out
gen
/target/

7、查看工作区更改内容

git diff	//当前做的哪些更新还没有暂存
git diff -- cached	//有哪些更新已经暂存起来准备好了下次提交
$ git diff index.txt
$ git diff HEAD -- index.txt
$ git diff --cached index.txt
$ git diff 287d9bd -- index.txt

## 1、git diff:工作区和缓存区比较
## 2、git diff --cached:缓存区和HEAD比较
## 3、git diff HEAD:工作区和HEAD比较
## 4、git diff commitID:工作区和某一版本的比较

8、分支相关

区分提交记录和分支
(1)分支指向提交记录
(2)按逻辑分解工作到不同的分支,使用分支其实就相当于在说:“我想基于这个提交以及它所有的父提交进行新的工作。”
新功能开发流程:
创建并切换到功能分支,开发完毕后提交,并合并到develop分支,在develop分支上push到远程

【创建】
git branch newImage		//创建名newImage的新分支
git checkout newImage 	//切换到分支newImage
===>>git checkout -b <newImage> 创建新分支并切换
【合并】
//c1等指提交记录的哈希值
git checkout c1;    git merge c2    //新增提交记录c3,包含c1\c2所有提交记录(树还有一个叉);但是c1的分支(bugFix)指向c3,c2的分支(master)还指向c2
git checkout c1;	 git rebase c2   //将c1分支的所有提交记录复制一个副本添加到到c2分支上(树还有两个叉);但是...
									//【c1分支指向合并后的提交记录c2分支停在原位置,两个分支指向同一个叉的不同进度位置】
【在分支中移动1】
git checkout 提交记录的哈希值
//HEAD指向当前(最近一次)提交记录,HEAD-->分支名-->最近的提交记录;====>>HEAD的分离
【在分支中移动2】
相对引用
	参照物:分支名/HEAD
    位移:^num或~num
    {~num:向上返回num代;^num:当有多个父提交时}
    {支持链式操作,例如:git checkout HEAD~^2~2;例如:git branch bugWork HEAD^^2^}
【强制修改分支位置】
git branch -f bugFix HEAD~3		//强制修改分支bugFix 到HEAD~3处

【整理提交记录——已知提交记录的哈希值】
git cherry-pick c1 c2 c3	
//将提交记录c1\c2\c3复制到当前分支HEAD下
====>>在不同分支上实现不同的功能,切换到develop分支,将做好功能的提交记录整理到develop分支下
【整理提交记录——未知哈希值,可从一系列提交记录中找出——交互式rebase】
git rebase -i/-interactive HEAD~4	
//交互式整理HEAD上最近的4个提交记录,在git的UI界面,可以调整顺序,删除提交记录,合并提交记录相对体育
##相对于合并分支,可以选择合并指定的提交记录,而不是全部记录无差别的合并

9、撤销变更

git reset HEAD~1		//本地修改,之前的提交记录仍在,但未暂存
git revert HEAD			//添加新的提交记录c',c'的内容是撤销原提交记录,可将c' push到远程库

10、杂项技巧

【提交】
git commit --amend	//修改后提交,但并不产生新的提交记录,在原提交记录中修改
【git tag 锚点】
永远指向某个提交记录的标识呢,比如软件发布新的大版本
(1)设置 git tag <标签名> <提交记录哈希值>
(2)查找/切换	git checkout <标签名>	//会使得HEAD分离
【git describe <参照物>】
描述最近{参照物}的锚点
参照物:可为分支名或HEAD

在这里插入图片描述

【git bisect】
查找产生 Bug 的提交记录

question
1.几个区域(工作区,暂存区,本地仓库)的位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值