如果你还没有生成 SSH 密钥对,可以使用以下命令生成:
ssh-keygen -t ed25519 -C "[email protected]"
这将生成两个文件:
~/.ssh/id_ed25519
(私钥)~/.ssh/id_ed25519.pub
(公钥)打开公钥文件:
cat ~/.ssh/id_ed25519.pub
复制公钥内容。
登录 Gitee:打开浏览器,访问 Gitee 并登录你的账户。
添加 SSH 密钥:
My Laptop
)。启动 SSH 代理:
eval "$(ssh-agent -s)"
添加私钥到 SSH 代理:
ssh-add ~/.ssh/id_ed25519
将一个本地项目提交到 Gitee 上,假设 Gitee 上还没有创建仓库,可以按照以下步骤进行:
my-project
)、描述等信息。进入项目目录:
cd /path/to/your/project
初始化 Git 仓库:
git init
添加所有文件到暂存区:
git add .
提交文件到本地仓库:
git commit -m "Initial commit"
获取 Gitee 仓库的 URL:在 Gitee 上创建的仓库页面中,可以看到仓库的 URL。例如,https://gitee.com/username/my-project.git
。
添加远程仓库:
git remote add origin https://gitee.com/username/my-project.git
推送代码到远程仓库:
git push -u origin master
如果仓库的默认分支名称不是 master
,请替换为实际的分支名称。例如,如果默认分支名称是 main
,则使用:
git push -u origin main
从远程仓库(如 Gitee、GitHub 等)拉取一个已有的项目到本地。
确保你的计算机上已经安装了 Git。如果没有安装,可以从 Git 官方网站 下载并安装。
使用 git clone
命令将远程仓库克隆到本地:
打开终端或命令行工具:
导航到你希望保存项目的目录:
sh cd /path/to/your/directory
使用 git clone
命令克隆远程仓库:
假设远程仓库的 URL 是 https://gitee.com/username/repo.git
,使用以下命令:
git clone https://gitee.com/username/repo.git
git clone [email protected]:username/repo.git
ps: 执行git clone
命令会自动执行git init
等一系列命令。
克隆完成后,进入项目目录:
```sh
cd repo
```
查看当前分支:
git branch
查看所有的远程分支:
git branch -r
此时,可以创建并切换到新的本地分支,并跟踪远程分支(尽量保证your_branchName和branchName 保持一致):
git checkout -b your_branchName origin/branchName
拉取当指定分支到当前分支:
git pull origin branchName
添加所有文件到暂存区:
git add .
提交文件到本地仓库:
git commit -m "Initial commit"
推送代码到远程仓库:
git push <远程仓库名> <本地分支名>:<远程分支名>
两者同名时,可以简化成:
git push <远程仓库名> <分支名>
一般这样写:
git push -u origin branchName
-u 或 --set-upstream:这个选项用于设置上游分支。设置上游分支后,Git 会记住这个关联,使得后续的 git push 和 git pull 命令可以更简洁地使用。
假设你目前处于合并冲突的状态,无法向远程提交项目。
拉取最新的项目代码到一个临时分支。
git checkout -b tmp-branch origin/master
切换回要提交的分支,假设为master。
git checkout master
尝试将拉取的项目和本地项目融合。
git merge tmp-branch
使用 git status
命令确认哪些文件存在冲突:
git status
输出应该类似于:
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commits each, respectively.
(use "git pull" if you want to integrate the remote branch with yours)
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)
Unmerged paths:
(use "git add ..." to mark resolution)
both modified: src/main/java/com/example/demo/Demo1Application.java
打开冲突文件 src/main/java/com/example/demo/Demo1Application.java
,找到冲突标记(<<<<<<<
, =======
, >>>>>>>
),手动编辑文件,删除冲突标记,保留你希望保留的代码。
例如,冲突文件可能看起来像这样:
<<<<<<< HEAD
public class Demo1Application {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
=======
public class Demo1Application {
public static void main(String[] args) {
System.out.println("Hello, Gitee!");
}
}
>>>>>>> feature-branch
手动编辑文件,解决冲突后,文件可能看起来像这样:
public class Demo1Application {
public static void main(String[] args) {
System.out.println("Hello, Gitee!");
}
}
使用 git add
命令将解决冲突后的文件添加到暂存区:
git add src/main/java/com/example/demo/Demo1Application.java
解决所有冲突后,提交更改:
git commit -m "Resolved merge conflicts"
解决冲突并提交更改后,再次尝试将代码推送到远程仓库:
git push -u origin master