Git 常用指令(分支、克隆、远程仓库、冲突)

Git 常用指令

用树的形式对代码的历史版本进行维护,有利于多人协作与代码回滚。

1. 基本概念

  • 工作区:仓库的目录。工作区是独立于各个分支的。
  • 暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
  • 版本库:存放所有已经提交到本地仓库的代码版本
  • 版本结构:树结构,树中每个节点代表一个代码版本。

2. 基础操作指令

git add: 工作区 --> 暂存区

git commit: 暂存区 --> 本地仓库,每一次 commit 代码一次提交记录

git log: 查看提交日志

git log [option]

  • -all : 显示所有分支
  • --pretty=oneline : 提交信息显示为一行
  • --abbrev-commit :使输出的 commitid 更简短
  • --graph :以图的形式显示

git log --graph --oneline --abbrev-commit --all

git status: 查看提交状态

git reset --hard commitID : 回退到某个版本

git reset --hard HEAD^git reset --hard HEAD~ :将代码库回滚到上一个版本
git reset --hard HEAD^^:往上回滚两次,以此类推
git reset --hard HEAD~100:往上回滚100个版本
git reset --hard 版本号:回滚到某一特定版本

git reflog: 操作的日志 (查看已经删除的提交记录)

添加文件至忽略列表 : 填写 .gitignore

3. 分支

HEAD: 标记当前分支

  1. 查看本地分支
bash 复制代码
git branch
  1. 创建分支 dev1
bash 复制代码
git branch dev1

git checkout -b dev1 # 创建并切换
  1. 切换分支
bash 复制代码
git checkout dev1
  1. 合并分支
bash 复制代码
git checkout dev1  # 切换到名为dev1的分支
vim file2         # 使用vim编辑器打开file2文件进行编辑
git add .         # 添加当前目录下所有修改过的文件到暂存区
git commit -m 'add file2'  # 提交暂存区的更改,并添加提交信息'add file2'
git checkout master  # 切换到名为master的主分支
git merge dev1      # 将dev1分支的更改合并到当前所在的master分支
  1. 解决冲突

在 master 分支中修改 file1 内容:

txt 复制代码
this is file1

good luck

在 dev1 分支中修改 file1 内容:

txt 复制代码
this is file1
good luck to you

切换回 master 分支,合并时产生冲突,需要我们手动处理冲突

bash 复制代码
$ git merge dev1
Auto-merging file1
CONFLICT (content): Merge conflict in file1
Automatic merge failed; fix conflicts and then commit the result.

打开 file1 内容如下:

txt 复制代码
this is file1
<<<<<<< HEAD

good luck
=======
good luck to you
>>>>>>> dev1

然后我们修改 file1

txt 复制代码
this is file1
good luck to you
good luck
bash 复制代码
www@DESKTOP-3QO16U4 MINGW64 /d/wordspace/code/study-program/git-test (master|MERGING)
$ git add .

www@DESKTOP-3QO16U4 MINGW64 /d/wordspace/code/study-program/git-test (master|MERGING)
$ git commit -m 'merge'
[master 35adfe8] merge

www@DESKTOP-3QO16U4 MINGW64 /d/wordspace/code/study-program/git-test (master)
$

解决冲突!!!

4.仓库托管

(1)配置 SSH 公钥

bash 复制代码
 ssh-keygen -t rsa

生成密钥,通过以下查看公钥并配置

bash 复制代码
cat ~/.ssh/id_rsa.pub

通过以下方法判断是否成功

bash 复制代码
 ssh -T git@gitee.com

(2)远程仓库推送

首先创建一个仓库

添加到远程仓库 (用 SSH 的地址)

bash 复制代码
git remote add origin git@gitee.com:xxx/git-test.git

查看远程仓库

bash 复制代码
git remote

把 master 分支推送到 origin 仓库

bash 复制代码
git push origin master
bash 复制代码
git push origin master:master

关联分支

bash 复制代码
git push --set-upstream origin master:master

关联之后仅需 git push

查看本地分支和远程分支的关系

bash 复制代码
git branch -vv

(3)远程仓库拉取

切换新的目录

克隆项目,并且文件夹命名为git-test2

bash 复制代码
 git clone git@gitee.com:xxxxx/git-test.git git-test2

项目抓取

在git-test项目中添加文件 file3,并且提交远程仓库。

bash 复制代码
touch file3
git commit -m 'add file3'
git push

在git-test项目中抓取

bash 复制代码
# 从远程仓库拉取最新的分支和数据,但不会自动合并到本地分支
git fetch origin

# 将远程仓库的 master 分支的更改合并到当前本地分支
git merge origin/master
bash 复制代码
# 从远程仓库拉取最新的分支和数据,并自动合并到当前本地分支
git pull origin branch_name

远程仓库冲突

按照自己意愿修改冲突文件

相关推荐
云云3211 小时前
怎么通过亚矩阵云手机实现营销?
大数据·服务器·安全·智能手机·矩阵
新加坡内哥谈技术1 小时前
苏黎世联邦理工学院与加州大学伯克利分校推出MaxInfoRL:平衡内在与外在探索的全新强化学习框架
大数据·人工智能·语言模型
涵信2 小时前
Windows11 安装 Ubuntu-20.04,同时安装配置 zsh shell,配置 git 别名(alias),大大提高开发效率
linux·git·ubuntu·bash
Data-Miner2 小时前
经典案例PPT | 大型水果连锁集团新零售数字化建设方案
大数据·big data
lovelin+v175030409662 小时前
安全性升级:API接口在零信任架构下的安全防护策略
大数据·数据库·人工智能·爬虫·数据分析
道一云黑板报3 小时前
Flink集群批作业实践:七析BI批作业执行
大数据·分布式·数据分析·flink·kubernetes
节点。csn3 小时前
flink集群搭建 详细教程
大数据·服务器·flink
数据爬坡ing3 小时前
小白考研历程:跌跌撞撞,起起伏伏,五个月备战历程!!!
大数据·笔记·考研·数据分析
云云3213 小时前
云手机方案全解析
大数据·服务器·安全·智能手机·矩阵
喝鸡汤4 小时前
一起学Git【第五节:git版本回退】
git