git的使用,本地代码提交远程仓库
1. 安装git
地址: https://git-scm.com/about
右键鼠标会显示这两个选项,一般使用 Git Bash Here
***
2. 拉取项目代码
鼠标右键选中 Git Bash Here
(以下命令均在Bash中操作)
输入 git clone xxx
xxx表示项目的路径
***
3. 配置SSH公钥以及私钥
原因: 如果不配置,每一次使用 git pull
or git push
都需要输入账号和密码
配置方法:
- 查看是否已经生成公钥和私钥
cd ~/.ssh
进入相应目录 一般情况下 密钥存放在~/.ssh
目录下
ls
打印该目录文件
如果显示id_rsa、 known_hosts、 id_rsa.pub
等文件,表示已经生成过SSH密钥
其中id_rsa.pub
即使公钥文件,id_rsa
是与之对应的私钥文件
如果没有显示上述文件,继续往下执行 - 通过运行 ssh-keygen 程序来创建它们
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
rsa是密钥类型,4096是密钥字节数
会有如下提示:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/xxx/.ssh/id_rsa): // 表示密钥的存储地址,回车
Created directory '/c/Users/xxx/.ssh'.
Enter passphrase (empty for no passphrase): // 输入一次密码(最好直接回车,否则pull/push操作仍然需要输入密码)
Enter same passphrase again: // 再次输入密码
Your identification has been saved in /c/Users/xxx/.ssh/id_rsa.
Your public key has been saved in /c/Users/xxx/.ssh/id_rsa.pub.
如果已经存在,会提示 Overwrite(y/n)?
选择y即可重置
通过以上操作即可生成公钥和私钥
3. 查看公钥: cat ~/.ssh/id_rsa.pub
4. 将公钥添加到远程托管平台(github)
将 /c/Users/xxx/.ssh/id_rsa.pub
内容复制到 github > 个人头像 > Settings > SSH Keys > 粘贴公钥,并点击 Add key 按钮
5. 最后使用 git clone sshUrl
尝试一下
***
git的使用
- 针对相应bug编号创建
feature-xxx
(基于master创建)分支 (有 create branch 按钮) - 针对个人 创建
name-xxx
分支 (基于上一步创建的feature分支) - 本地
git pull
更新远程状态到本地 - 本地
git branch -a
查看所有分支 - 本地
git checkout name-xxx
切换到属于当前bug的个人分支上 - 本地
git status
查看项目的修改情况 (vs code 左边目录栏第三个 Source Control 也可以查看,但是需要先git status
然后刷新一下(点击 Refresh)) - 本地
git add .
添加内容到本地缓存(此处的.
表示当前目录下的所有需要add的文件,因此可以add指定目录文件) - 本地
git commit -m "bug简介"
提交内容到本地缓存(此时还没有上传到远程仓库) - 本地
git push
即是将本地提交的内容上传到远程仓库中 - 远程仓库中查看,并进行合代码操作 (点击 create merge request 查看changes,并合到指定分支上)
***
git不同文件状态表示的含义
- 正常的: 绿色的对号
- 被修改过的: 红色感叹号
- 新添加的: 蓝色的加号
- 未受控的( 无版本控制的): 蓝色的问号
- 忽略不受控的 :灰色的减号
- 删除的:红色的x号
- 有冲突的: 黄色的感叹号
***
git 避免add不需要的文件
目的: 比如 node_modules、dist等文件我们不想提交
方法: 使用 .gitignore 文件
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
pnpm-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
注意: .gitignore文件 需要单独先提交一遍push,否则不生效
***
其他
git rm --cached ./xxx
删除缓存中的某某文件(提交push后该文件在远程也会被删除)
所以,对于错误add的文件如何还原,需要考虑
***
分支的操作命令
-
git branch
查看本地分支
git branch -a
查看本地和远程分支
git checkout xxx
切换分支
git switch xxx
切换分支
git branch xxx
创建分支(本地)
git checkout -b xxx
创建本地分支,并切换到此分支
git switch -c xxx
创建+切换分支
git branch -d xxx
删除分支 -
推送本地分支local_branch到远程分支 remote_branch并建立关联关系
git push
远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch
git push --set-upstream origin remote_xxx
将本地分支关联到远程分支(这样本地代码才能提交到远程)远程已有分支,但是并未关联本地分支git push origin local_xxx:remote_xxx
远程没有分支,本地已经切换到local_xxx分支
git push origin xxx
推送代码到远程分支
git push
单纯这样操作不行 -
git push origin :xxx
这个是删除分支git push origin --delete xxx
这个也是删除git branch -d xxx
也是删除 -
git merge feature-xxx
合并某分支到当前分支
注意: 在当前分支上创建分支,是能够继承这个分支的代码的(所以要在需要的分支上创建分支)
***
创建分支、关联分支、代码提交
git branch
首先查看分支git checkout xxx
切换分支(以此分支作为新分支的模板)git checkout -b xxx
创建本地分支,并切换到此分支git push --set-upstream origin remote_xxx
将本地分支关联到远程分支(这样本地代码才能提交到远程)远程已有分支,但是并未关联本地分支git push origin xxx
推送代码到远程分支git merge feature-xxx
合并某分支到当前分支
参考链接
https://www.jianshu.com/p/e93edea128a3
https://www.cnblogs.com/lz0925/p/10725010.html
https://www.cnblogs.com/zhahuhu/p/11587429.html
https://blog.csdn.net/zhangxingyu126/article/details/79169694
https://git-scm.com/book/zh/v2/服务器上的-Git-生成-SSH-公钥
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了