*共有三个账户,记得进行区分
(1)git账户
用户名:ccx1171061548
邮箱:ccx1171061548@xxxxx.com
密码:xxxxxx
(2)Linux系统git配置
用户名:ccx1171061548
邮箱:ccx1171061548@xxxxx.com
密码:xxxxxx
(3)Linux系统git配置
【私钥】cat ~/.ssh/id_rsa(类似于管理员账户,避免泄露)
用户名:ccx1171061548
邮箱:ccx1171061548@xxxxx.com
密码:xxxxxx
【公钥】cat ~/.ssh/id_rsa.pub
打印结果以ssh-rsa....开头,复制即可,可分发用于远程免密登录
==============================环境准备====================================
1. git注册
(1)注册码云账号,地址:https://gitee.com
(2)加入openEuler社区,地址:https://www.openeuler.openatom.cn/zh/
2. git安装
(1)windows安装:https://git-scm.com/download/win
(2)linux安装
openEuler: dnf install git #openeuler下亲测可用
centOS: yum install git #openerler下亲测可用
ubuntu: apt-get install git
3. 全局配置用户名和邮箱
git config --global user.name "Your Name" #""里面的内容需要替换为自己的username,前面内容不变
git config --global user.email "email@example.com" #""里面的内容需要替换为自己的email,前面内容不变
上述配置会生成公钥核私钥两部分:
文件路径 | 类型 | 用途 |
---|---|---|
/root/.ssh/id_rsa | 私钥 | 本地保留,不可泄露 |
/root/.ssh/id_rsa.pub | 公钥 | 可以分发给远程服务器,实现免密登录 |
4. 链接远程仓库
(1)生成SSH密匙
ssh-keygen -t rsa -C "youremail\@example.com" #这里""中的内容需要替换为自己上面设置的邮箱
cat ~/.ssh/id_rsa.pub
cat打印后的公钥如下,可以复制它用于远程免密登录配置。
(2)复制上述cat 后得到的ssh-rsa.....公钥,登录远程仓库网站Gitee账户并添加密匙如下
=============================Clone&源项目同步==============================
1. 进入要修改的仓库,点击右上角的Forked,将其fork到自己的仓库,如下图所示。
2.Fork成功之后会自动进入Fork的仓库目录,点击克隆/下载->选择复制任一链接。见下图。
把链接复制到下框中
3.将仓库clone到本地,并进入仓库目录。以上图https://gitee.com/ccx1171061548/mindscience.git仓库为例。
git clone "https://gitee.com/ccx1171061548/mindscience.git"
进入此项目目录
cd mindscience #这里的mindscience是项目名
4. 使用命令 git remote -v查看所有远程库的url,见下图。
*发现输出只有origin(clone)得到得地址,没有源项目地址(upstream)
名称 | 通常含义 | 用途 |
---|---|---|
origin | 自己clone的远程仓库 | 拉取(pull)、推送(push)代码 |
upstream | 源作者的远程仓库( fork 的来源) | 拉取最新代码,保持同步(只能 fetch / pull) |
添加上游源项目地址(upstream)
git remote add upstream https://gitee.com/ccx1171061548/mindscience.git
再次执行git remote -v,如下图所示。
此时已经将源项目添加到环境中。
5.设置不将项目修改推送(push)到上游(upstream)openEuler里面的仓库,而是只推送到自己(origin)Fork的gitee仓库下。
git remote set-url --push upstream no_push
修改后再次执行git remote -v,如下图所示。
6.设置项目抓取(fetch)上游openEuler社区保持同步
git fetch upstream
输出结果如下,
在源项目中找到分支如下,
与fetch upstream输出结果相对应。
切换到默认的master分支,并且把最新的代码同步下来。
git checkout master
git rebase upstream/master #同步最新分支
输出如下,已完成源项目的最新更新。
===================创建PR(Pull Request)&项目修改&代码开发===================
1.创建新分支,帮助我隔离开发环境,避免影响到主分支。
#创建并自动切换到一个新的分支(建议以自己的Gitee ID创建新的分支名)
git switch -c <自定义分支名>
#列出所有的本地分支,并且会标记出当前所在的分支。
git branch
#显示当前分支的状态
git status
新建分支后如下
2.提交更改并更新项目push
# a) 进入操作的工作目录
#修改都在这个目录进行,不要修改这个目录下的其他文件
#cd ./pr/primary/
# b) 以自己的Gitee ID为名建立空文件
cd . > ccx1171061548
# c) 将此文件加入到git暂存区(用自己Gitee ID)
git add ccx1171061548
# d) 进行commit(可修改记录)
git commit -s -m "Add ccx1171061548"
# e) 推送到自己的远端仓库
git push --set-upstream origin ccx1171061548
# f) 查看状态
git status
git log
输出如下:
在自己建立的仓库下可看到更新:
*注意:
(1)“cd .”表示改变当前目录为当前目录,等于没改变,故该操作不会有任何输出。将该输出重定向到一个文件,即创建了一个空文件。
(2)commit的修改规则,可以使得项目提交历史更简洁,现简单展示其中的“编辑”规则运用:
#修改历史中的某个特定提交,N 是你想要回溯的提交数量,按需修改
git rebase -i HEAD~N
#之后,编译器会自动打开,您可将需要修改的某一条提交记录前的“pick”改为“edit”,保存并关闭,Git 将停止在指定的提交上,让你进行修改
#修改完成后,若继续变基,输入下方命令
git rebase --continue
#重复上述过程,直至修改完毕
#如已修改完毕,输入以下命令,结束变基
git rebase --abort
(4) 如果后续还有commit要推送到远端仓库的话,e) 步骤的命令直接用“git push”就行了。
3.创建Pull Request。这是一个请求,希望项目维护者将我的更改合并到主分支。操作界面如下:
进入后,即可进行编辑。
感谢参考: