200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > gitee项目能用SVN拉取吗_使用Git开发维护Github开源项目的一些经验

gitee项目能用SVN拉取吗_使用Git开发维护Github开源项目的一些经验

时间:2018-12-11 02:43:35

相关推荐

gitee项目能用SVN拉取吗_使用Git开发维护Github开源项目的一些经验

Github无法访问/访问慢的经验

github经常会因为一些原因抽风,无法访问,这时候,可以使用gitee同步github项目,然后从gitee拉项目。在gitee导入项目以后,项目名称后面有个同步的图标,可以随时点击与github同步。然后就可以本地git pull同步gitee的代码了。

我的经验是

# 本地origin:master->github/kimmking:master

git clone /kimmking/incubator-shardingsphere

然后添加两个远程:

git remote add gitee /kimmking/incubator-shardingsphere

git remote add apache /apache/incubator-shardingsphere

这样如果github不可用的时候,可以通过gitee操作,然后再可用的时候同步到github;

如果github慢,就更简单的,因为我们每次改动的很少,所以只要同步到了当前最新代码,我们提交commit和push的数据很少,可以git push成功。

分支开发的经验

1、可能同时有几个不同的目的想修改项目代码,所以最好每个修改都在自己的单独分支上,相互不干扰。比如修改一个issue3939,就从当前最新的代码拉一个issue3939的分支,用完pr被merge到apache/master就可以删掉。

git branch -b issue3939

修改完,提交到github并自动创建分支:

git push --set-upstream origin issue3939

2、可以自己在github上fork本项目,这样clone拉下来,默认origin:master -> 自己id:master,然后让这个分支一直跟apache:master同步。例如:

git clone /kimmking/incubator-shardingsphere

具体做法,我是本地再添加apache的remote,然后拉到本地为amaster。

git remote add apache /apache/incubator-shardingspheregit fetch apache master:amastergit checkout amastergit branch --set-upstream-to=apache/master

每天早上先:

checkout amastergit pullgit push -f origin amaster:mastercheckout mastergit pull

这时,本地和origin远程的master,就都和apache/master同步了。随时拉的分支,都是基于最新代码的,pr合并到主干冲突的可能性就最小。

3、如果我们的修改,当天没有提交和pr,建议这么同步。同时执行,

git checkout issue3939git merge master

把最新的改动合并到我们正在操作的分支上。

一些有用命/Github令

1、git branch -vv,查看当前本地有哪些分支,已经对应的远程分支和当前最后一次提交信息:

$ git branch -vvamaster 33acaa6 [apache/master] Abstract visitor determine logic to a central class (#4418)gmaster 33acaa6 [gitee/master] Abstract visitor determine logic to a central class (#4418)* master 33acaa6 [origin/master] Abstract visitor determine logic to a central class (#4418)

带星号的为当前分支。

查看所有分支:

$ git branch -arapache/3.1.0-SNAPSHOTapache/4.0.0-RC3-Milestone-0.1apache/4.0.1apache/4.0.1-releaseapache/devapache/dev-4.xapache/docs5.xapache/masterapache/orchestration-5.xapache/proxy-with-netty-backendapache/sharding-parser-5.xapache/sharding-scalingapache/sharding-scaling-uigitee/masterorigin/3.1.0-SNAPSHOTorigin/4.0.0-RC3-Milestone-0.1origin/4.0.0-RC3-releaseorigin/4.0.1origin/HEAD -> origin/devorigin/adevorigin/amasterorigin/devorigin/fix_config_pathorigin/issue3896origin/issue3929origin/master

2、git log,显示日志

如果想简单的查看,可以让每个commit只显示一行:

$ git log --oneline -10

3、git reset,回滚提交

回滚两个版本,不改变当前修改的代码:

$ git reset --soft head~2

然后可以用git status来查看有哪些变动。

这个办法可以用来压缩多次不合理的、同一个目的的提交,重新变成一次提交。

如果想让代码也改变到2个版本之前的状态,可以把soft改为hard。

如果想把当前修改都未提交的代码回滚到最后一次提交状态,也可以用:

$ git reset --hard head

如果想回滚到某一次具体的提交:

$ git reset --hard 33acaa6

4、git fetch,拉取远程代码

拉一个具体分支:

$ git fetch apache master:kk01

同步本地仓库和所有远程分支:

$ git fetch --all

5、git-extras,特别推荐一个git命令行插件

MacOS下可以直接用brew安装;

Linux可以yum或apt-get安装。

Windows需要在git clone /tj/git-extras

$ install.cmd "C:git" # 假设C:git 为git安装目录

具体可以参考:/tj/git-extras/blob/master/Installation.md

然后就可以使用一些很好玩的命令了:

git summary #显示项目的统计信息,比如每个人贡献比例

git info #跟svn info一样

git pr 3939 apache #从github/apache下把pr#3939拉到本地成为一个分支,review代码特别有用

等等。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。