Git remote 及 社区提交操作
注:社区提交常用的git命令和操作
git remote 本地仓库和远程仓库 repository
git remote -vt
查看远程仓库有几个
git remote add
添加远程仓库
本地仓库和远程仓库一般配合完成,通过
git remote add [远程仓库名] 远程仓库地址
来添加当前本地仓库的远程仓库,这样本地仓库会知道当
git push
的时候会往那个远程提交代码。
如果
git push
不加参数,默认就是
git push origin [当前分支名]
之前操作,第一次从远程拉取,推送的时候
git push --set-upstream origin [b分支名]
,建立了本地仓库和远程仓库的关联,以后只需要
git push
就可以完成本地像远程的推送了。
git remote add local [本地仓库路径]
git remote add local ~/home/code/nspace/nuttx/
将git的远程分支设置为本地文件系统的位置,这样可以通过
commit-id
进行
cherry-pick
操作了。之前需要
git fetch local
保证更新了local仓库的commit-id。
git remote rm [远程仓库名]
git remote add local ~/home/code/nspace/nuttx/
git remote -v
git remote rm local
git remote -v
git fetch
git fetch
更新 git remote 中
所有远程仓库
所包含分支的最新
commit-id
,将其记录到
.git/FETCH_HEAD
中
git fetch [remote_repository]
更新名称为remote_repository的远程仓库上的所有branch的最新commit-id,记录到
.git/FETCH_HEAD
中
git fetch [remote_repository] [remote_branch_name]
更新名称为remote_repository的远程仓库上的remote_branch_name分支
FETCH_HEAD
是一个版本链接,记录在本地的一个文件中,指向目前已经从远程仓库取下来的分支的末端版本
🐖
所以有时候需要使用fetch对远程仓库更新
git cherry-pick
git cherry-pick [commit-id]
git commit
git commit -s -m “xxx”
提交时添加签名信息
git commit –amend
修改提交
https://www.jianshu.com/p/7d40838883af
操作Step
创建github账号,添加ssh-key,fork某个仓库(apach/nuttx为例),本地git已经配置好了前提
本地从自己的github克隆fork的代码
git clone git@github.com:username/nuttx.git
cd nuttx
git fetch
git remote -v
查看
添加社区仓库到本地的远程仓库
git remote add apache https://github.com/apache/nuttx.git
git remote -v
查看
获取clone后的更新
git fetch origin
git fetch apache
更新下本地及github fork的代码
git branch
git checkout master
git fetch apache
git rebase apache/master
*** [快进master至apache/master]
git branch -vv
[*master commit-id [origin/master: ahead 628]]
git add .
git commit -s
[位于分支master,领先origin/master共628个提交,使用git push来发布本地提交]
git push origin master
[本地,远程github fork的都和社区里的一样了]
添加本地的代码,进行cherry-pick
git remote add local ~/code/nspace/nuttx/
git fetch local
本地需要创建一个新的提交分支,不好在master进行
git branch --track my_dev apach/master
git checkout my_dev
git cherry-pick [local本地代码里的某些提交id]
把local目录下的本地开发分支里的某些commit拿出来cherry-pick过来
git push origin my_dev
提交到了自己github fork仓库下的my_dev分支里
在github fork仓库下提出request
pull request
参考链接