git常用操作

clone下载

如果你想将远程仓库完整地复制到本地,可使用 git clone 命令。该命令会在本地创建一个与远程仓库相同的目录结构,并下载所有的文件和提交历史。

语法:

git clone <远程仓库地址> [本地目录名]
  • 远程仓库地址:这是远程仓库的 URL,可以是基于 HTTP/HTTPS 协议的地址,也可以是基于 SSH 协议的地址。
  • 本地目录名(可选):指定克隆到本地的目录名称。如果不指定,Git 会使用远程仓库的名称作为本地目录名。

后续说明

远程仓库有多个分支时,使用git clone后,本地能看到的往往只有一个分支,通常是master,并不能看到远程仓中的全部分支,想获取其他分支的操作为:
git checkout <remote_other_branch_name>
使用该指令会在本地创建与远程仓同名分支并与远程分支完成关联。如果不希望本地分支与远程分支同名,则按照常规方式,可以先创建一个分支,再使用git pull拉取。

实例

  • 使用 HTTPS 协议克隆:
git clone https://github.com/username/repository.git

这种方式无需配置 SSH 密钥,适用于快速克隆公共仓库,但在每次进行推送等操作时可能需要输入用户名和密码。

  • 使用 SSH 协议克隆:
git clone git@github.com:username/repository.git

使用 SSH 协议需要提前配置好 SSH 密钥,配置完成后,在进行与远程仓库的交互时无需频繁输入用户名和密码,更加便捷和安全。

  • 克隆到本地指定目录
git clone https://github.com/username/repository.git my-local-repo

此命令会将远程仓库克隆到本地的 my-local-repo 目录中。

提交

提交是最常用的操作之一。

第一步,查看文件状态

在进行提交之前,你可以使用git status命令查看工作目录中文件的状态,了解哪些文件被修改、添加或删除。
git status
该命令会输出类似如下的信息,提示你哪些文件处于未跟踪(untracked)、已修改(modified)或已暂存(staged)状态:

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        new_file.txt

no changes added to commit (use "git add" and/or "git commit -a")

第二步,将修改添加到暂存区

使用git add命令将需要提交的文件添加到暂存区。你可以指定具体的文件名,也可以使用通配符或 . 来添加所有修改的文件。

# 添加单个文件
git add test.txt
# 添加多个文件
git add file1.txt file2.txt
# 添加当前目录下所有修改的文件
git add .

第三步,提交暂存区的内容到本地仓库

使用git commit命令将暂存区的内容提交到本地仓库,并添加有意义的提交说明,以便后续查看和理解此次提交的目的。

git commit -m "描述此次提交的内容,如修复了某个 bug 或添加了新功能"

PS:如果你在执行git commit时没有使用-m选项指定提交说明,Git 会打开默认的文本编辑器(如 Vim)让你输入提交说明,输入完成后保存并退出编辑器即可完成提交。

跳过暂存区直接提交

如果你想跳过将文件添加到暂存区的步骤,直接将所有已跟踪文件的修改提交到本地仓库,可以使用git commit -a命令。

git commit -a -m "直接提交所有已跟踪文件的修改"

pull下载

背景:远端仓库新建一个分支,下载到本地的正确方法

第一步,确保本地仓库是最新状态

在拉取远程新分支之前,需要保证本地仓库和远程仓库的信息是同步的。可以使用以下命令更新本地仓库的远程分支信息:
git fetch origin
这个命令会从远程仓库(这里假设远程仓库别名为 origin)下载所有分支的最新提交信息,但不会合并到本地分支,只是更新了本地的远程分支引用。

第二步,查看远程仓库的所有分支

使用以下命令查看远程仓库的所有分支,确认新分支是否已经被正确获取:
git branch -r
该命令会列出所有远程分支,输出结果可能如下:

origin/main
origin/new_branch  # 这是新创建的远程分支

第三步,使用 git checkout 命令创建并切换到本地新分支

如果你想创建一个与远程新分支同名的本地分支,并将其与远程分支 关联起来,可以使用以下命令:
git checkout -b new_branch origin/new_branch

  • -b 选项表示创建一个新的本地分支。
  • new_branch 是本地要创建的分支名称(也可以不同名,这个无所谓)。
  • origin/new_branch 是远程仓库的新分支名称。

第四步,验证本地分支

使用以下命令查看本地分支列表,确认新分支是否已经成功创建并切换到该分支:
git branch
输出结果会显示当前本地的所有分支,当前所在分支会以特殊颜色或星号标记:

* new_branch
  main

第五步,使用 git pull 拉取远程分支文件内容

完成本地分支的创建和切换后,就可以使用 git pull 命令将远程分支上的文件内容拉取到本地分支。

git pull origin new_branch

该命令会将 origin 远程仓库中 new_branch 分支上的文件内容拉取到当前本地的 new_branch 分支,并尝试合并(如果有本地修改)。git pull 实际上是 git fetch 和 git merge 的组合操作,它先从远程仓库获取最新内容,然后将其合并到当前本地分支。

删除

本地和库上都删除

# 删除本地文件
rm example.txt

# 将删除操作添加到暂存区
git add example.txt

# 提交删除操作到本地代码仓
git commit -m "Delete example.txt"

# 将删除操作推送到远程仓库
git push origin main

以上前两步可以用以下命令代替:
git rm example.txt
该指令表示删除本地文件,并提交到暂存区

仅库上删除,本地不删除

# 仅从版本控制中移除文件,保留本地文件
git rm --cached <file_path>  #删除文件
git rm -r --cached <file_path>  #删除文件夹

# 提交更改
git commit -m "Remove tracked file to follow .gitignore rules"

使用 git rm --cached 只是从版本控制中移除文件,不会删除本地文件;而使用 git rm 则会同时删除本地文件。

删除远程分支

这是最常用的删除远程分支的方法,其基本语法为:

git push <远程仓库名> --delete <远程分支名>

或者使用简化的语法:

git push <远程仓库名> :<远程分支名>
  • <远程仓库名>:通常是 origin,它是本地仓库默认关联的远程仓库名称。
  • <远程分支名>:即你想要删除的远程分支的名称。
    示例
    假设你要删除 origin 远程仓库中的 feature-branch 分支,可以使用以下命令:
git push origin --delete feature-branch

或者使用简化语法:

git push origin :feature-branch

执行上述命令后,Git 会尝试删除远程仓库中的指定分支。如果删除成功,会在终端显示相应的提示信息。

删除远程分支后的注意事项

  • 更新本地分支信息:删除远程分支后,本地仓库可能仍然保留着对该远程分支的引用。你可以使用 git remote prune <远程仓库名> 命令来清理这些无效的引用。例如:
git remote prune origin
  • 避免误删:删除远程分支是一个不可逆的操作,一旦删除,分支上的所有提交记录都将被永久删除。因此,在删除之前,请确保你确实不需要这个分支。
posted @ 2025-03-08 11:24  MKYC  阅读(165)  评论(0)    收藏  举报