不同场景下git指令的搭配

添加账号

bash 复制代码
git config --global user.name "YourName"
git config --global user.email "your_email@example.com"

设置 Git 默认分支名称为 main

bash 复制代码
git config --global init.defaultBranch main

初始化仓库:

bash 复制代码
git init

配置SSH 密钥

如果你使用 SSH 方式连接 GitHub,需要生成并添加 SSH 密钥到 GitHub:

bash 复制代码
ssh-keygen -t rsa -b 4096 -C "your@email.com"

然后将 ~/.ssh/id_rsa.pub 中的内容复制粘贴到 GitHub 的 Settings > SSH and GPG keys 页面。

初始化本地仓库并上传代码

情况一:新建项目上传到 GitHub
bash 复制代码
# 进入你的项目目录
cd /path/to/your/project

# 初始化 Git 仓库
git init

# 添加所有文件到暂存区
git add .

# 提交更改
git commit -m "Initial commit"

# 关联远程仓库(HTTPS方式)
git remote add origin https://github.com/your-username/repo-name.git

# 或者使用 SSH 方式(推荐)
git remote add origin git@github.com:your-username/repo-name.git

# 推送代码到 GitHub 主分支(main)
git push -u origin main

💡 如果你本地是 master 分支,而 GitHub 默认是 main,你可以重命名分支:

bash 复制代码
git branch -M main

情况二:已有 GitHub 仓库,克隆到本地再提交代码
bash 复制代码
# 克隆远程仓库到本地
git clone https://github.com/your-username/repo-name.git

# 进入项目目录
cd repo-name

# 添加新文件或修改内容
# ...

# 添加更改
git add .

# 提交更改
git commit -m "Add new feature"

# 推送到远程仓库
git push origin main

提交修改到本地(切换分支时候需要先执行这一步)

bash 复制代码
git add .
git commit -m "保存当前工作进度"

查看当前 Git 仓库关联的远程库

bash 复制代码
git remote -v

这个命令会列出所有与该仓库关联的远程库及其 URL。输出结果通常看起来像这样:

复制代码
origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

在这个例子中,origin 是远程库的名字,而 https://github.com/user/repo.git 是远程库的 URL。(fetch)(push) 表明该远程库用于 fetch(拉取) 和 push(推送) 操作。通常情况下,你会看到同一个 URL 对应着 fetch 和 push 操作,但也可以配置不同的远程库分别用于这些操作。

如果你只想知道用于推送的远程库,可以专注于那些标注了 (push) 的行。例如,上面的例子显示 origin 远程库被配置为向 https://github.com/user/repo.git 推送更改。

添加远程库

bash 复制代码
git remote add github git@github.com:ergevv/xxxxx.git

这个仓库在电脑本地叫github,指向的是github的仓库。

bash 复制代码
git push github master

将本地的分支推送到github指向的git@github.com:ergevv/xxxxx.git仓库的master分支。

推送到特定分支

  1. 查看当前分支
bash 复制代码
git branch
  1. 创建并切换到 main 分支
bash 复制代码
git checkout -b main

这会基于当前提交创建一个新的 main 分支,并切换过去。

  1. 设置远程跟踪(关联远程仓库的 main 分支)
    如果你确定远程仓库已经有 main 分支,可以直接拉取:
bash 复制代码
git checkout -b main origin/main

创建一个新的本地分支 main,并让它跟踪远程分支 origin/main(也就是你之前添加的远程仓库 github 的 main 分支),然后切换到这个新分支。

  1. 推送本地 main 分支到 GitHub 的 main
bash 复制代码
git push github main

这样就会把你的本地 main 分支推送到 GitHub 上的 main 分支了。


清理远程的分支

bash 复制代码
git push github --delete master

删除本地指向的仓库:

bash 复制代码
git remote remove github

将本地的分支 dev/test 推送到 GitHub 上的远程仓库,并且希望它被推送到 远程的 master 分支:

bash 复制代码
git push github dev/test:master

下载指定分支

  1. 命令格式:
bash 复制代码
git clone -b <分支名> <仓库地址> <本地目录名(可选)>

示例:从 GitHub 下载名为 dev/test 的分支:

bash 复制代码
git clone -b dev/test https://github.com/ergevv/xxxx.git
  1. 如果已经克隆了仓库,但想切换到其他分支
bash 复制代码
cd path/to/project     # 进入已克隆的项目目录
git fetch               # 获取远程所有分支信息
git checkout dev/test  # 切换到指定分支

如果提示 Branch 'dev/mcapRecord' not found,说明你需要先拉取远程分支:

bash 复制代码
git fetch origin dev/test
git checkout -b dev/test origin/dev/test

fetch和pull的区别

git fetch 是 Git 中一个非常有用的命令,它主要用于从远程仓库获取最新的信息和更新,但不会自动合并或修改你当前的工作目录。具体来说,git fetch 的作用可以概括为以下几个方面:

  1. 获取远程更新

    • git fetch 会连接到指定的远程仓库,并拉取所有本地没有的数据(如新的提交、分支等),但不会将这些更改自动合并到你的工作目录中。
    • 这意味着你可以查看远程发生了哪些变化,而不用担心这些变化会直接影响你的工作。
  2. 更新远程引用

    • 它会更新本地关于远程分支的信息(即远程跟踪分支)。例如,如果你在远程仓库上有一个名为 origin/master 的分支,执行 git fetch 后,Git 会确保你的本地 origin/master 指向与远程仓库一致的位置。
  3. 不改变本地分支的状态

    • git pull 不同,git fetch 不会尝试合并或重新应用任何远程的更改到你当前的分支。因此,它是安全的,尤其是在你不确定是否需要将远程的更改合并到当前工作中时。
1. 查看远程分支的变化
bash 复制代码
git fetch origin
  • 执行上述命令后,你可以通过 git loggit diff 来比较本地分支与远程分支之间的差异。

例如,查看 master 分支与远程 origin/master 的差异:

bash 复制代码
git log master..origin/master
git diff master origin/master
2. 更新远程跟踪分支

假设你想切换到一个新的远程分支,但该分支尚未在本地存在:

bash 复制代码
git fetch origin dev/test
git checkout dev/test
  • 这会确保本地有最新的 dev/test 分支信息,然后你可以安全地切换到这个分支。
3. 在合并之前检查远程更改

如果你想在实际合并之前查看远程分支上的最新更改,可以先执行 git fetch,然后手动决定如何处理这些更改(比如是否合并):

bash 复制代码
git fetch origin
# 现在你可以选择是否以及如何合并
git merge origin/master
# 或者
git rebase origin/master

注意:当git pull时,如何本地有修改的文件,那么该文件拉取时,不是远程仓库的最新版本,而是本地的修改版本。

相关推荐
ALex_zry6 小时前
Git 乱码文件处理全流程指南:从识别到彻底清除
git·elasticsearch·搜索引擎
李梦晓6 小时前
git 提交代码到别的分支
前端·git
思绪漂移7 小时前
更改CodeBuddy的默认terminal为Git Bash
git·bash·terminal·codebuddy
一世暖阳7938 小时前
git创建独立分支并上传远程仓库
git
《小书生》18 小时前
git stash 暂存文档
git
蓝易云1 天前
Git stash命令的详细使用说明及案例分析。
前端·git·后端
社会牛马也要做匹黑马1 天前
团队协作中Git Commit应该如何规范化
git
liansmo1 天前
Git与TortoiseGit在Gitee平台的应用
git·gitee
Doris_LMS2 天前
Git下载及安装保姆级教程
git
jingling5552 天前
Git 常用命令指南:从入门到高效开发
前端·javascript·git·前端框架