git基本命令使用

本文详述了Git的基本操作,包括仓库的获取方式、本地与远程仓库的管理、分支的创建与切换、合并与拉取流程,以及提交与推送的规范。通过实例演示,帮助读者掌握Git的日常使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取仓库

获取仓库的两种方式

  • 1.将没有进行版本控制的本地目录转换为git仓库;
  • 2.从远程仓库 克隆(git clone)一个git仓库

在本地目录初始化仓库

# 切换到项目目录下
# 初始化仓库,会在项目目录下生成一个 .git的文件夹
git init

克隆现有仓库

# 从远程仓库克隆
# 会在当前目录下创建一个名字为 elastic 的文件夹,在elastic目录下包含一个 .git文件夹(包含git所有内容,后边详细介绍 .git)
git clone <url>
git clone ssh://git@gitlab.hangjia.online:10022/yuanchaohu/elastic.git

远程仓库

# 查看远程仓库信息
git remote (只能看到添加远程分支时设置的别名)
git remote -v (查看详细信息,别名、远程仓库地址)
# 查看某个远程仓库信息
git remote show 远程仓库别名
# 例:查看远程仓库 origin
[root@bogon elastic]# git remote show origin
* 远程 origin	
  获取地址:ssh://git@gitlab.hangjia.online:10022/yuanchaohu/elastic.git
  推送地址:ssh://git@gitlab.hangjia.online:10022/yuanchaohu/elastic.git
  HEAD分支:master
  远程分支:
    master 已跟踪
  为 'git pull' 配置的本地分支:
    master 与远程 master 合并
  为 'git push' 配置的本地引用:
    master 推送至 master (可快进)

# 添加远程仓库
git remote add 仓库别名 仓库url
# 删除远程仓库
git remote rm 仓库别名
# 远程仓库重命名
git remote rename 原名 新名

本地分支

# 查看本地分支,可以看到当前所在分支 (* 分支名;-v / -vv 可查看 一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有)
git branch [-v]/[-vv] 
# 创建本地分支 dev
# 创建新分支会在当前所在的提交对象上创建一个指针,比如说最开始clone后只有master分支,新创建了一个dev分支
# 这时master和dev都会指向相同的提交记录(提交历史),并且现在还是在master分支上(不会自动切换到新建分支上)
# git 通过 HEAD(一个特殊的指针,一直指向本地所在的分支)确定当前所在分支
git branch dev 
# 创建分支并切换到该分支
git checkout -b dev
# 删除本地分支 dev
# 不能删除当前所在分支,如果要删除当前所在分支,先切换到其他分支
git branch -d dev
# 切换本地分支,切换分支时 HEAD 指向切换的分支
git checkout dev

# 查看分叉历史(多个分支进行了不同的工作后会产生分叉,在合适的时候将分支进行合并)
git log --oneline --decorate --graph --all

分支切换会改变你工作目录中的文件
在切换分支时,一定要注意你工作目录里的文件会被改变。 如果是切换到一个较旧的分支,你的工作目录会恢复到该分支最后一次提交时的样子。 如果 Git 不能干净利落地完成这个任务,它将禁止切换分支。

远端分支

# 查看远端仓库信息
git remote (只显示远程仓库简称/别名)
git remote show origin (显示远程origin详细信息)
# 列出远程仓库和分支信息
git ls-remote
# 例:
[root@bogon elastic]# git ls-remote
From ssh://git@gitlab.hangjia.online:10022/yuanchaohu/elastic.git
7317a65f6917d8dbf05a3216cec834844b5242c9        HEAD
7317a65f6917d8dbf05a3216cec834844b5242c9        refs/heads/dev
7317a65f6917d8dbf05a3216cec834844b5242c9        refs/heads/master

# 修改上游分支
git branch -u origin/dev

# 删除远程origin仓库的 dev分支
git push origin --delete dev

合并分支

# 使用 git status 可查看有冲突的文件
git status

# 合并分支 
git merge <分支名>
# 例:切换到dev分支修改了README.md,git commit 提交到本地
# 然后切换回master分支,使用 git merge dev和并dev分支后就能看到在dev分支修改后的内容

# 遇到冲突时的分支合并
# 例:如果在不同的分支对同一个文件修改了统一部份代码或内容,合并分支的时候就会提示冲突
# 此时应该解决冲突,然后 git add <文件名> ,标识冲突已解决,然后git commit 提交合并


# rebase
git rebase origin/<远端分支名>

拉取

# 抓取远端的数据 (origin为远程仓库的名字)
# 从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然后让你自己合并。
git fetch origin
# git pull 相当于 gti tetch 然后 git merge
git pull 
# 拉取远程origin仓库的dev分支到本地的dev分支(也可以理解为:创建本地分支并将分支建立在远程跟踪分支上)
# git checkout -b <本地分支名> <远程仓库名>/<远程仓库分支名>
git checkout -b dev origin/dev 

# 将远程指定分支 拉取到本地的 指定分支上
git pull origin <远程分支>:<本地分支>

# 将远程指定分支 拉取到 本地当前分支
git pull origin <远程分支>

# 将远程的 feature_test 分支检出到本地 feature_test
git checkout -b feature_test origin/feature_test

跟踪分支:从一个远程跟踪分支检出一个本地分支会自动创建所谓的“跟踪分支”(它跟踪的分支叫做“上游分支”)。 跟踪分支是与远程分支有直接关系的本地分支。 如果在一个跟踪分支上输入 git pull,Git 能自动地识别去哪个服务器上抓取、合并到哪个分支。

提交

# 对项目下需要版本管理的的文件夹/文件 进行git 追踪(. 代表当前目录下所有文件夹和文件);
# 支持通配符 比如 (git add ./*.go)代表把当前目录下所有 .go 文件进行追踪
git add .  

# 提交到git本地仓库
git commit -m "提交信息" 

# git push 语法
git push <remote> <branch>
# 推送本地master 到远程仓库服务器的master分支 origin
git push origin master

# git push <远程仓库名> <本地分支名>:<远程仓库分支名> (如果没有指定的远程分支名,会新建远程分支)
# 例:把本地master分支 推送到远程仓库origin的dev分支上
git push origin master:dev
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值