添加账号
git config --global user.name "YourName"
git config --global user.email "your_email@example.com"
设置 Git 默认分支名称为 main
:
git config --global init.defaultBranch main
初始化仓库:
git init
配置SSH 密钥
如果你使用 SSH 方式连接 GitHub,需要生成并添加 SSH 密钥到 GitHub:
ssh-keygen -t rsa -b 4096 -C "your@email.com"
然后将 ~/.ssh/id_rsa.pub
中的内容复制粘贴到 GitHub 的 Settings > SSH and GPG keys 页面。
初始化本地仓库并上传代码
情况一:新建项目上传到 GitHub
# 进入你的项目目录
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
,你可以重命名分支:
git branch -M main
情况二:已有 GitHub 仓库,克隆到本地再提交代码
# 克隆远程仓库到本地
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
提交修改到本地(切换分支时候需要先执行这一步)
git add .
git commit -m "保存当前工作进度"
查看当前 Git 仓库关联的远程库
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
推送更改。
添加远程库
git remote add github git@github.com:ergevv/xxxxx.git
这个仓库在电脑本地叫github
,指向的是github的仓库。
git push github master
将本地的分支推送到github指向的git@github.com:ergevv/xxxxx.git
仓库的master
分支。
推送到特定分支
- 查看当前分支
git branch
- 创建并切换到
main
分支
git checkout -b main
这会基于当前提交创建一个新的 main
分支,并切换过去。
- 设置远程跟踪(关联远程仓库的 main 分支)
如果你确定远程仓库已经有main
分支,可以直接拉取:
git checkout -b main origin/main
创建一个新的本地分支 main,并让它跟踪远程分支 origin/main(也就是你之前添加的远程仓库 github 的 main 分支),然后切换到这个新分支。
- 推送本地
main
分支到 GitHub 的main
git push github main
这样就会把你的本地 main
分支推送到 GitHub 上的 main
分支了。
清理远程的分支
git push github --delete master
删除本地指向的仓库:
git remote remove github
将本地的分支 dev/test 推送到 GitHub 上的远程仓库,并且希望它被推送到 远程的 master 分支:
git push github dev/test:master
下载指定分支
- 命令格式:
git clone -b <分支名> <仓库地址> <本地目录名(可选)>
示例:从 GitHub 下载名为 dev/test
的分支:
git clone -b dev/test https://github.com/ergevv/xxxx.git
- 如果已经克隆了仓库,但想切换到其他分支
cd path/to/project # 进入已克隆的项目目录
git fetch # 获取远程所有分支信息
git checkout dev/test # 切换到指定分支
如果提示 Branch 'dev/mcapRecord' not found
,说明你需要先拉取远程分支:
git fetch origin dev/test
git checkout -b dev/test origin/dev/test
fetch和pull的区别
git fetch
是 Git 中一个非常有用的命令,它主要用于从远程仓库获取最新的信息和更新,但不会自动合并或修改你当前的工作目录。具体来说,git fetch
的作用可以概括为以下几个方面:
-
获取远程更新:
git fetch
会连接到指定的远程仓库,并拉取所有本地没有的数据(如新的提交、分支等),但不会将这些更改自动合并到你的工作目录中。- 这意味着你可以查看远程发生了哪些变化,而不用担心这些变化会直接影响你的工作。
-
更新远程引用:
- 它会更新本地关于远程分支的信息(即远程跟踪分支)。例如,如果你在远程仓库上有一个名为
origin/master
的分支,执行git fetch
后,Git 会确保你的本地origin/master
指向与远程仓库一致的位置。
- 它会更新本地关于远程分支的信息(即远程跟踪分支)。例如,如果你在远程仓库上有一个名为
-
不改变本地分支的状态:
- 与
git pull
不同,git fetch
不会尝试合并或重新应用任何远程的更改到你当前的分支。因此,它是安全的,尤其是在你不确定是否需要将远程的更改合并到当前工作中时。
- 与
1. 查看远程分支的变化
git fetch origin
- 执行上述命令后,你可以通过
git log
或git diff
来比较本地分支与远程分支之间的差异。
例如,查看 master
分支与远程 origin/master
的差异:
git log master..origin/master
git diff master origin/master
2. 更新远程跟踪分支
假设你想切换到一个新的远程分支,但该分支尚未在本地存在:
git fetch origin dev/test
git checkout dev/test
- 这会确保本地有最新的
dev/test
分支信息,然后你可以安全地切换到这个分支。
3. 在合并之前检查远程更改
如果你想在实际合并之前查看远程分支上的最新更改,可以先执行 git fetch
,然后手动决定如何处理这些更改(比如是否合并):
git fetch origin
# 现在你可以选择是否以及如何合并
git merge origin/master
# 或者
git rebase origin/master