Git的使用

目录 

一、Git版本控制下的三种工程区域和文件状态

工程区域

文件状态

二、基本操作

1. 使用brew安装git, 在本地生成公钥添加到git上

2. 从git上下载代码到本地

3.  查看工作区

4. 新增/删除/移动文件到暂存区

5. 提交更改文件,保存到本地数据库

6. 推送至远端仓库

7. 分支管理

8. 查看日志

9. 撤销操作(谨慎使用)

10. 分支合并过程中的冲突处理​​​​​​​

三、工程开发常用 

1.新建分支开发

2. 查看与源分支差别(修改部分)

3. 修改提交到云端分支

4. 开发分支提测,需要合并主分支

5. merge 错了怎么回去?回滚到上个版本

6. 开发分支(dev)达到上线标准,合并到主分支

7. 查看日志

8. 重命名远程分支

9. 撤销、放弃本地修改

10. 远程分支回滚


一、Git版本控制下的三种工程区域和文件状态

工程区域

1.  版本库(Repository):隐藏目录.git存放了Git用来管理工程的所有版本数据

2. 工作区(Working Directory):日常工作的代码文件所在文件夹

3. 暂存区(Stage):也称之为索引(index)

文件状态

1.  已提交(committed):文件已被安全保存在本地数据库

2. 已修改(modified):修改了某文件,但未提交保存

3. 已暂存(staged):把已修改的文件放在下次提交时要保存的清单中 

二、基本操作

1. 使用brew安装git, 在本地生成公钥添加到git上

​​​​​​​配置Git并生成SSH公钥

2. 从git上下载代码到本地

$git clone 地址

p.s. 如果你所在项目git服务器已支持git-lfs,对二进制文件进行了区别管理,那么克隆务必使用 git lfs clone 地址,否则克隆操作无法下载工程中的二进制文件,项目不完整。

3.  查看工作区

$git diff 分支      // 查看节点/分支之间的差异
$git diff --cached // 当前索引和上次提交间的差异
$git diff 分支 --name-status //看差异文件列表
$git status // 显示工作目录和暂存区状态

4. 新增/删除/移动文件到暂存区

$git add // 新创建的文件需要add,曾提交过的旧文件修改后不用add
$git rm // 将指定文件彻底从当前分枝的暂存区删除,因此它从当前分支的下一个提交快照中被删除
       // 从本地磁盘删除,再git commit,和上述效果相同
$git mv // 移动文件,也可用于重命名文件

$git mv 文件 目标目录
$git mv 旧文件名 新文件名 

5. 提交更改文件,保存到本地数据库

$git commit file_name -m "备注"
$git commit -am "备注" // 批量提交所有在暂存区的改动文件
$git commit amend // 修改最近提交的版本的提交信息,修改完后会新生成一个节点

6. 推送至远端仓库

$git push origin branch_name(远端服务器分支名) // 把新建的分支push到远端名为origin的服务器
$git push -f origin branch_name(远端服务器分支名) // 强制推送

7. 分支管理

查看分支

$git branch    //查看本地分支
$git branch -r //查看远程分支
$git branch -a //查看本地和远程所有分支

 新建分支

$git checkout -b new_branch // 从当前分支copy出新的开发分支,并切换到新分支

 删除分支

// 删除本地分支
$git branch -d branch_name 
$git branch -D branch_name // 大写表示强制删除,小写删不了时可用

// 删除远端分支
$git branch -d  -r branch_name(本地分支名) 
$git push origin branch_name(远端分支名) 

切换分支

$git checkout branch_name
$git checkout -f branch_name // 强制切换

获取远端分支

// git pull 从远端服务器获取某分支更新,再与本地指定分支合并
$git pull origin remote_branch:local_branch
// 远程指定的分支和本地指定的分支相同时,可省略为:
$git pull origin remote_branch


// git fetch 从远端服务器获取某分支更新,不会与本地指定分支合并(多了一个本地分支),确认符合预期后再决定是否手动合并
// git fetch + git merge = git pull
$git fetch origin remote_branch:local_branch
// 远程指定的分支和本地指定的分支相同时,可省略为:
$git pull origin remote_branch

合并分支

// 从指定分支合并到当前分支
$git merge branch_name
$git merge 源分支 目的分支 

$git rebase branch_name // 日志可读性很差,公共分支上不要用这种合并方式
git merge
git rebase
git rebase

8. 查看日志

$git log    // 查看所有日志
$git log -1 // 查看最新一条日志
$git reflog // 查看最近做的修改列表

9. 撤销操作(谨慎使用)

// 撤销某些git add/commit 操作,工作区内容回退到历史提交节点
$git reset commit_id
$git reset --hard  commit_id

// 回退本地"所有"修改而未提交的文件内容(谨慎,小心清空了所有缓存区)
$git checkout .
// 回退本地"某个"修改而未提交的文件内容
$git checkout file_name
// 工作区回退到某个版本
$git checkout commit_id

10. 分支合并过程中的冲突处理

$git merge 源分支 目标分支
// 发生冲突,修改冲突文件
$git add 冲突文件
$git commit -m "解决冲突"

三、工程开发常用 

1.新建分支开发

 //在父分支(release/1.0.x)下建本地分支
 $ git checkout -b your_branch(feature/20210707_repeat_load_check)
 //在云端建新分支
 $ git push origin remote_branch(feature/20210707_repeat_load_check)
 //将云端和本地分支同步
 $ git branch --set-upstream-to=origin/remote_branch  your_branch
 $ git pull

2. 查看与源分支差别(修改部分)

$ git status

3. 修改提交到云端分支

$ git add .
$ git commit -m "commit"
$ git push

4. 开发分支提测,需要合并主分支

$ git checkout dev
//主分支合并到开发分支
$ git merge master
$ git push -u origin dev

5. merge 错了怎么回去?回滚到上个版本

//查看上个版本
$ git log 
//回滚
$ git reset --hard HEAD^(^表示上个版本,^^表示上上个版本)
//重新提交
$ git add.
$ git commit -m "commit"

具体有没有合并上去,去github查看commit

6. 开发分支(dev)达到上线标准,合并到主分支

//开发分支合并到主分支
$ git checkout dev
$ git pull
$ git checkout master
$ git merge dev
$ git push -u origin master

//master改动了,需更新开发分支代码
$ git checkout master 
$ git pull 
$ git checkout dev
$ git merge master 
$ git push -u origin dev

7. 查看日志

$ git log --pretty=format:"%h %s" --graph 
$ git log

8. 重命名远程分支

//删除远程分支
$ git push --delete origin remote_branch
//修改本地分支名
$ git branch -m your_branch your_new_branch
//推送本地分支
$ git push origin new_remote_branch
//如果原本的远程分支已经关联本地了且已经是错误的名字了,则需要重新关联一下新的本地分支和远程分支
$ git branch --set-upstream-to=origin/new_remote_branch  your_new_branch

9. 撤销、放弃本地修改

git 撤销,放弃本地修改 - 刀客八号 - 博客园

10. 远程分支回滚

//删除远程分支
$ git push --delete origin remote_branch
//推送本地分支
$ git push origin new_remote_branch
//重新关联一下新的本地分支和远程分支
$ git branch --set-upstream-to=origin/new_remote_branch  your_new_branch

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值