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

远程仓库冲突

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

相关推荐
赵渝强老师2 小时前
【赵渝强老师】基于ZooKeeper实现Hadoop HA
大数据·hadoop·分布式·zookeeper
大模型实战8 小时前
RAPIDS AI 加速制造业预测性维护效率
大数据·人工智能
胆小鬼~9 小时前
【DAY20240918】03教你轻松配置 Git 远程仓库并高效推送代码!
git
cyt涛9 小时前
搜索功能技术方案
mysql·elasticsearch·全文检索·canal·索引·数据同步·搜索
Data 3179 小时前
经典sql题(七)查找直播间最大在线人数
大数据·数据库·数据仓库·sql
树莓集团10 小时前
从AI到大数据,数字技术服务平台全栈赋能企业升级
大数据·人工智能·科技·物联网·媒体
shuxianshrng11 小时前
鹰眼降尘模型
大数据·服务器·人工智能·经验分享·机器人
金智维科技官方11 小时前
如何选择适合企业的高效财税自动化软件
大数据·人工智能·自动化
哆啦安全12 小时前
git常用命令(patch补丁和解决冲突)
git
△曉風殘月〆13 小时前
如何删除git提交记录
git