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

远程仓库冲突

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

相关推荐
朴马丁20 分钟前
预制菜的“数字厨房”:PLM如何支撑菜品标准化与供应链高效协同?
大数据·人工智能·食品行业·流程行业plm
恋喵大鲤鱼43 分钟前
git mv
git·git mv
奋斗的老史2 小时前
Spring-Boot 集成 TDengine 完整实战
大数据·时序数据库·tdengine
郑洁文2 小时前
音乐数据分析研究与应用
大数据·数据挖掘·数据分析·音乐数据分析
成长之路5143 小时前
【实证分析】地市环境规制综合指数测算-原始数据+do代码(2011-2024年)
大数据
逸模3 小时前
AI+BIM 重构连锁公装新范式 逸模打造数字化营建核心底座
大数据·人工智能·笔记·其他·信息可视化·重构
Patrick_Wilson4 小时前
Git Worktree 原理详解:从 objects / refs 看懂多分支并行与多 Agent 协作
git·面试·ai编程
谁似人间西林客4 小时前
工业大数据实战:看中国智造如何用数据驱动效率革命
大数据·单例模式
yaoxiaoganggang5 小时前
克隆 Superpowers 的规则库到你的本地(或者直接作为 Git Submodule)
人工智能·经验分享·git·ai编程
2501_933670795 小时前
数学成绩偏弱是否能填报大数据专业
大数据