git开源的分布式版本控制系统:
每次修改文件提交后,都会自动创建一个项目版本
查看git版本看有没有安装成功:git --version
把默认编辑器设置成vim:git config --global core.editor "vim"
1、设置昵称和邮箱:git config --global user.name "ZJR-FZD"
git config --global user.email "3380958706@qq.com"2、初始化:git init,在当前目录下创建一个隐形文件夹.git,记录版本信息
3、暂时保存文件:git add test.txt,保存位置和.git同级
git add . 保存当前目录下的所有文件
4、保存提交记录:git commit,
把当前暂时保存的变更提交固定成一个版本,会打开vim让你输入提交说明
i进入编辑模式,esc退出编辑,:wq保存并退出
简化版:git commit -m"提交说明",git commit -m "fix(test):change content"(规范式)
5、查看提交日志:git log
6、回退到某个版本:git reset --hard 26bc08efde5ac8ec11bedc1969507a3868b43c7f(b版本id) reset重置,--hard硬重置覆盖所有变更(不要轻易尝试)
7、在不清空的情况下,在不同版本中切换:用分支branch(把当前版本复制一份)
在git commit完之后,git branch 0.2 git branch 0.3
git branch -a列举所有分支
git checkout 0.2 git checkout 0.3切换分支
(git checkout -b new-branch创建新分支并切换到该分支下)
在0.3分支下,git merge 0.2,把这两条分支合并在一起
github或gitee:公共git仓库 (符合git操作的网盘)
1、在github上创建一个仓库
2、在本地vscode
git init
git add README.md(保存)
git commit -m "first commit"(提交)
git branch -M main(-M强制重命名分支,设为主分支)
git remote add origin https://... .git(添加你的远程仓库地址,给git项目设置网盘地址)
git push -u origin main
origin
:远程仓库的默认名称
git push
:推送命令,用于将本地分支的更改推送到远程仓库。
-u
:设置上游(upstream)的简写。这个选项会设置远程仓库的对应分支作为本地分支的上游,这样以后你只需要执行 git push
或 git pull
而不需要指定远程仓库和分支。
多人协作时,你负责某个分支的工作:
1、点击fork,将别人的仓库复制到自己的仓库,便于自己先进行修改(网页操作)
2、将自己的仓库克隆到本地vscode
git clone https://github.com/ZJR-FZD/re01.git
3、进入克隆下来的仓库目录
cd re01(所有 Git 命令必须在仓库根目录内运行,不能是子目录,在某个子目录下运行
git add .
不会 将其他子目录下的更改添加到暂存区)
4、和原作者的原始仓库保持同步(因为别人也可能更改原仓库)git remote add upstream https://github.com/midorg-com/re01.git:
添加别人的原始仓库作为上游仓库,让本地仓库知道从哪里获取原始仓库的信息
git fetch upstream:从指定的上游仓库拉取原作者最新的更改信息
git log HEAD..upstream/master:查看有哪些新的更新
git merge upstream/master:确认后,将上游仓库的master分支合并到本地的当前分支
上面三条命令等效于:git pull upstream master 直接拉取并合并上游更新
如果拉取不成功,试试设置代理:
# 替换为你的代理地址和端口(例如 Clash 默认是 7890)
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:78905、git remote -v:用于显示当前本地仓库中配置的所有远程仓库(remote repositories)的URL和它们的别名,检查有没有成功和原始仓库建立了连接
6、想要对别人的代码进行修改时,先建立自己的分支
git checkout -b zjr:创建并切换进入新分支
git checkout zjr:再次确保在zjr分支
...修改代码...
7、保存并提交更改到复刻仓库
git add . :保存当前目录更改或新建的文件,将其加到暂存区(和ctrl+s不同,ctrl+s只是在本地编辑器保存,而git add是将更改保存到Git管家那里,让Git跟踪这些文件的变化,为commit做准备)
git commit -m "完成**功能开发":将更改提交到本地版本库
(git pull upstream master:再次拉取上游最新代码合并到当前分支)
git push -u origin zjr:将本地zjr分支推送到复刻仓库的zjr分支上(第一次push要写参数指明push源和分支,以后写git push就行)
8、进入自己fork的仓库,然后点击 Pull requests(网页操作)
只用提交一次pr,如果后面在该分支上更改了代码并push到复刻仓库后,会自己在pr上生成新的请求更改记录。点击提交内部可以评论,详细说明改了哪里。
- 点击New Pull Request(请求别人拉取自己的更改)
- base是原始仓库:选择原始仓库的master分支
- compare是本地复刻仓库:选择刚推送上来的
zjr
分支(即base:midorg-com/main ← compare:ZJR-FZD/zjr)- 然后查看是否有绿色对号(没有则是人家原仓库更新了代码版本,而你用的还是旧的)
三级工作场地:原作者的原始仓库upstream——我的复刻仓库origin——我的本地vscode上的仓库,两两之间可以沟通
如果自己已经是仓库的协作者了,就直接git clone把仓库克隆到本地,那原始仓库就是origin,更新时就git pull origin master即可。那这样就可以直接提交更改了,不用再pr。
协作者无需 fork,直接克隆原仓库。
协作者的
origin
就是原仓库,无需添加upstream
。协作者推送代码到原仓库后,无需创建 PR(除非团队有强制 PR 流程)。
不先git init的话,可能会在克隆自己仓库时出现fatal: not a git repository (or any of the parent directories): .git的情况
这是一个学习github高级操作的笔记本
创建新仓库
1、先在github上建一个新仓库
2、打开vscode终端
git init 初始化仓库
git add README.md 保存新文件
git commit -m "first commit" 提交新文件
git branch -M main 更名为main分支
git remote add origin https://github.com/ZJR-FZD/experiment1.git 添加远程仓库origin链接
git push -u origin main 将main分支上传到origin仓库
给别人的仓库写功能代码
git remote add upstream https://github.com/midorg-com/midorg.git 添加远程仓库链接,起名为upstream
git remote -v 查看是否添加成功
git checkout -b zjr 创建并切换进新分支
git add . 保存
git commit -m "add(member):西瓜大侠" 提交
git push -u origin zjr 上传到自己仓库