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

远程仓库冲突

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

相关推荐
和你一起去月球18 分钟前
TypeScript - 函数(下)
javascript·git·typescript
PersistJiao42 分钟前
在 Spark RDD 中,sortBy 和 top 算子的各自适用场景
大数据·spark·top·sortby
2301_811274311 小时前
大数据基于Spring Boot的化妆品推荐系统的设计与实现
大数据·spring boot·后端
Yz98761 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
青云交1 小时前
大数据新视界 -- 大数据大厂之 Hive 数据导入:多源数据集成的策略与实战(上)(3/ 30)
大数据·数据清洗·电商数据·数据整合·hive 数据导入·多源数据·影视娱乐数据
我不是程序猿儿1 小时前
【GIT】TortoiseGit的变基(Rebase)操作
git
武子康1 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康1 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
时差9531 小时前
Flink Standalone集群模式安装部署
大数据·分布式·flink·部署
锵锵锵锵~蒋1 小时前
实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么
大数据·数据仓库·flink·实时数据开发