启动 SSH 连接 打开 terminal 要么命令行窗口,先别急着敲命令。你得先确认自己的机器能连上那个远程仓库的服务器。记得打开 SSH 密钥对,也就是在 macOS 上是 `ssh-keygen -t rsa`,在 Linux 上则是 `ssh-keygen -t rsa`。
这一步挺关键,不然每次敲密码都得忍着那一大堆乱码。密钥生成的路径一般默认是 `~/.ssh/`,别被这目录费眼,只要确保 `/root/.ssh/` 要么你主机的 `~/.ssh/` 目录里有生成的那两个文件,就能避免反复验证密码的费事。
要是第一次生成乱码还找不到文件,别急,大约率是那个身份验证文件没保存好。 建立远程连接 有了密钥,下一步就是连接远程服务器了。用 `ssh -i ~/.ssh/id_rsa user@hostname.com` 这个命令把本地私钥和远程 IP 地址配对起来。
这一步是自动化的,它会把私钥里的信息传给服务器,相当于发了一张临时的通行证,不用每次都打密码。
要是伴随报错,比如 "Connection refused" 要么 "Permission denied",先别慌,换个 IP 试试,要么检查一下密钥是不是加密格式不对。
有时候是出于网络延迟,要么防火墙把端口锁住了。 配置 git 用户信息 连接成功后,还得在本地设置一下 git 的用户名和邮箱,不然每次刷新仓库都要手动填,忒蠢了。在终端里直接跑 `git config user.name "你的用户名"` 和 `git config user.email "你的邮箱地址@domain.com"`。
这个配置贼好办,但极实际上用,赶明儿你在远程修 Bug 要么提 PR 的时候,系统能自动识别你是哪位,不用每次都问老伙计。 克隆项目到本地 目前能够启动下载那个仓库了。使用命令 `git clone https://github.com/username/repo.git`,这个命令会把整个代码库、资源文件、就连可能包含的依赖包都拉取到你的电脑上了。
要是你用的是私有仓库,记得加上 `https://` 的协议,要么配置一下 SSH key 加速下载。下载好后,终端会弹出一个文件夹,比如叫 `repo`。你能够在里面随意逛,看看有没有 `README.md` 之类的文件,要么随意改转变量,保存 `git add .`,然后执行 `git commit -m "Initial commit"`。
这个命令是把当前文件夹里的所有变化记录进去,默认描述就写成了你刚刚加的那个信息,别看有点简陋,但胜在好办直接。 查看本地状态 想要确认下载得对不对,实际上挺好办。在终端输入 `git status`,它就给你展示当前目录下有哪些文件,哪些是修改过的,哪些是暂存的,还有哪些是已经被暂存的。
有时候你会发现文件没有直接拉取,而是通过“工作目录”的方式下载了,这时候 `git status` 也会提示工作目录目录。 修改文件名和创建分支 想给代码起个新名字?就用 `git mv` 命令,把原来的文件名改掉,比如把 `main.py` 改成 `main.py.bak`,注意这个命令只功能于当前文件,不改动其他文件。
要是不想把东西弄乱了,能够去 `git branch` 列表里看看自己有哪些分支,比如 `master` 要么 `develop`。想新增一个分支?运行 `git branch -a` 能看到状态,然后 `git branch -M new_branch_name` 就能快速重命名,要么 `git checkout -b new_branch_name` 来创建新分支,之后就能够在这分支里干活,写完了用 `git push -u origin new_branch_name` 推上去,就能自动把这一分支和远程的 master 分支联系起来了,赶明儿更新 master 时,这个分支会自动生效。 版本管住与管理 搞懂版本管住,得学会如何撤销操作。假设你刚刚改了一个文件不想改了,直接 `git reset HEAD `,这个命令会撤销那一行代码,并且不会删掉文件的其他内容,回退到刚刚你 commit 之前的状态。
要是想彻底删除整个文件?记得加上 `-f` 参数,`git reset hard `,不过这个比较悬,一旦执行了,之前的提交历史都会受影响,故此慎用。
要是你把文件删了想恢复,那比较费事,可能需求从更大的提交里回滚,要么重新从仓库里拉一遍,要不就你记得那个文件的 MD5 哈希值。 推送和拉取 要把本地改动同步到远程仓库,用 `git push` 命令,不带任何参数。
要是你已经配置了远程仓库的分支,比如 `master`,你就得用分支名,比如 `git push origin master`。
要是还没配置,要么你想给当前分支起个新名字,先 `git tag` 给当前提交加个标签,然后 `git push set-upstream origin ` 再推上去,这样远程的 master 分支就会显示你本地的分支名。
要是本地和远程没法同步,那可能网络不通,要么账号权限不够,要么仓库本身被别人锁了。 总结 搞定分支、合并冲突、重命名提交,这些小子都挺烦人的。遇到 `Git merge` 报错的话,就先看看是不是冲突了,合解决冲突再 `git merge`。
有时候合并会黄了,那就 `git rebase -i ` 进入交互式模式,用 `i` 标记冲突行,`s` 跳过删除操作,`S` 跳过修改操作,`x` 标记拉倒提交。
要是没冲突,那就直接 `git rebase main`,这样就能保证你的提交历史是线性的,没有乱序的情况。 最终,别忘了定期提交代码,不然神仙难救。