Git 基操

Git 详解


本文主要参考:

阮一峰-常用 Git 命令清单

在这里插入图片描述

- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库

Git 是一个分布式版本控制系统,它将项目的存储和版本控制分布在本地和远程仓库之间。以下是 Git 中涉及的一些核心概念:

本地仓库(Local Repository):

本地仓库是存放在本地计算机上的版本控制仓库,包含完整的项目历史和文件。

相关命令:

git init: 在一个目录中初始化一个新的Git仓库。
git clone <repository>: 克隆一个远程仓库到本地。

远程仓库(Remote Repository):

远程仓库是托管在网络上的 Git 仓库,可以通过网络协议(如 HTTPS、SSH)访问。

相关命令:

git remote add <name> <url>: 添加一个远程仓库。
git push <remote> <branch>: 将本地分支的提交推送到远程仓库。
git pull <remote> <branch>: 从远程仓库拉取并合并变化到本地仓库。

工作区(Working Directory):

工作区是包含项目实际文件的目录,是你编辑和修改文件的地方。

相关命令:

git status: 显示工作区和暂存区的状态,显示未提交的修改。

暂存区(Staging Area):

暂存区是介于工作区和本地仓库之间的缓冲区域,用于存放即将提交的文件修改。

相关命令:

git add <file>: 将文件添加到暂存区。
git reset <file>: 从暂存区移除文件,但保留工作区中的修改。

提交(Commit):

提交是将暂存区的修改保存到本地仓库的操作,创建了项目的一个版本。

相关命令:

git commit -m "Commit message": 将暂存区的修改提交到本地仓库,并附带一条提交信息。

常用命令

git clone

git clone 命令用于克隆(复制)一个远程仓库到本地。

  1. 基本用法:
git clone <repository> [<directory>]

# <repository>: 远程仓库的 URL。
# <directory>: 本地目录的名称,可选参数,如果不指定,默认使用远程仓库的名称。
  1. 克隆指定分支,默认是克隆主分支(通常是 master 或 main)。
git clone -b <branch> <repository>

示例:

git clone -b development https://github.com/example/repo.git

git add

git add 命令用于将文件的修改添加到暂存区,以便后续提交。

  1. 基本用法:
git add <file>
  1. 将所有修改过的文件添加到暂存区,包括新建的、修改过的和删除的文件。
git add -A
# 或者 
git add .
  1. 指定要添加的文件或目录的路径模式。
git add <pathspec>

示例:

git add a.txt # 添加 a.txt 到暂存区
git add *.txt   # 添加所有以 .txt 结尾的文件到暂存区, *注意不会穿透文件夹
git add dir_name # 添加 dir_name 下的所有文件到暂存区

git commit

将暂存区的更改提交到本地仓库,并创建一个新的提交(commit).

  1. 基本使用
git commit -m "Commit message"
  1. 自动将所有已经被 Git 管理的修改过的文件暂存起来并提交。注意,对于未被追踪(untracked)的文件,该参数无效,你需要使用 git add 将其加入暂存区。慎用!
git commit -a -m "Commit message"

git remote

git remote 命令用于管理远程仓库.

  1. 基本用法:
git remote [subcommand] [options] [args]
# subcommand: 子命令,用于执行不同的操作。
# options: 选项,用于指定一些额外的参数。
# args: 参数,用于指定远程仓库的名称等。
  1. 添加远程仓库。
git remote add <remote-name> <url>

# <remote-name>: 远程仓库的名称,通常为 origin。
# <url>: 远程仓库的 URL。

示例:

git remote add origin https://example.com/repo.git
  1. 移除已经存在的远程仓库。
git remote remove <remote-name>
# 或者
git remote rm <remote-name>

# <remote-name>: 要移除的远程仓库的名称。

示例:

git remote remove origin
  1. 修改已存在的远程仓库的名称。
git remote rename <old-name> <new-name>
# <old-name>: 已存在的远程仓库的名称。
# <new-name>: 要修改为的新名称。

示例:

git remote rename origin new_origin_name
  1. 显示一个远程仓库的信息。
git remote show <remote-name>

示例:

git remote show origin
  1. 显示远程仓库的详细信息,包括 URL。
git remote -v

git push

git push 命令用于将本地仓库的提交推送到远程仓库。

  1. 基本用法
git push <remote> <branch>
# <remote>: 远程仓库的名称,通常为 origin。
# <branch>: 本地分支的名称,将该分支的提交推送到远程仓库。
  1. 将本地分支与远程分支关联起来。在首次推送分支时,使用 -u 参数可以使本地分支和远程分支建立关联关系,以后推送时可以简化命令。直接使用 git push , 而不用增加 这两个参数了。
git push -u <remote> <branch>

示例

git push -u origin main
  1. 强制推送,用于覆盖远程仓库上的内容。谨慎使用,因为它可能会覆盖其他人的提交。
git push --force <remote> <branch>

示例:

git push --force origin main
  1. 推送所有分支到远程仓库。
git push --all <remote>

示例:

git push --all origin
  1. 推送所有标签到远程仓库。
git push --tags <remote>

示例:

git push --tags origin
  1. 删除远程仓库上的分支。
git push --delete <remote> <branch>

示例:

git push --delete origin branch_name

git checkout

git checkout 命令用于切换分支或检出文件, 从本地仓库检出到工作区。它有不同的参数,根据用途可以分为两个主要类别:分支操作和文件操作。

切换分支的影响:
  • 工作区(Working Directory):

切换分支会将工作区的文件替换为目标分支的文件,因此工作区的内容会被改变。

  • 暂存区(Staging Area):

切换分支不直接影响暂存区,暂存区的内容保持不变。

  • HEAD 指针:

HEAD 指针将移动到目标分支,表示当前所在的分支。

检出文件的影响:

  • 工作区(Working Directory):

检出文件会用指定版本的文件替换工作区中的文件,因此工作区的内容会被改变。

  • 暂存区(Staging Area):

如果文件之前已经被添加到暂存区,检出文件会将暂存区中的文件版本替换为指定版本的文件。

  • HEAD 指针:

HEAD 指针保持不变,因为检出文件不涉及分支切换。

分支操作

1.切换分支

git checkout <branch>
# <branch>: 要切换到的目标分支。

示例:

git checkout dev # 切换到 dev 分支
  1. 创建新分支并切换:
git checkout -b <new-branch>

示例:

git checkout -b dev2 # 建立新的分支, 名称为 dev2
  1. 切换到前一个分支:
git checkout -
文件操作
  1. 检出特定文件(从本地仓库检出到工作区),相同路径的本地改动如果没有推入暂存区, 将会消失
git checkout <file>
# <file>: 要检出的文件路径。

示例:

git checkout index.html
  1. 从其他分支检出特定文件, 相同路径的本地改动如果没有推入暂存区, 将会消失
git checkout <branch> -- <file>
# <branch>: 从该分支检出文件。
# <file>: 要检出的文件路径。

示例:

git checkout dev -- index.html

# 从 dev 分支检出 index.html 到工作区
  1. 丢弃所有本地修改:
git checkout -- .

git fetch

git fetch 命令用于从远程仓库下载新的分支和提交(commit),以及更新本地的远程跟踪分支(remote-tracking branch)。git fetch 用于获取远程仓库的最新变更,但并不将这些变更合并到当前分支。它主要用于同步本地仓库和远程仓库的状态。

  1. 基本用法
git fetch -a

(use “git rm --cached …” to unstage)
git remote 命令有哪些参数, 什么作用写出使用方法和注释

将远程新分支拉到本地, 并进行关联

如果远程存在一个分支 okld,而你本地没有这个分支,你可以使用以下命令将该分支拉取到本地并与远程分支建立关联:

git checkout -b okld origin/okld

这个命令的作用是在本地创建一个新分支 okld,并将其与远程的 origin/okld 分支关联起来。这样,你就在本地创建了一个与远程分支同名的分支,并且两者建立了关联。

如果你已经有一个本地分支想要与远程分支建立关联,也可以使用以下命令:

git branch -u origin/okld okld

这个命令将本地分支 okld 与远程分支 origin/okld 建立关联。

请注意,这些命令假定你的远程仓库名为 origin。如果你使用了其他远程仓库名,需要相应地替换。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值