fork

github更新自己fork的代码

孤街醉人 提交于 2020-03-18 12:21:36
某厂面试归来,发现自己落伍了!>>> github上有个很方便的功能叫fork,将别人的工程一键复制到自己账号下。这个功能很方便,但有点不足的是,当源项目更新后,你fork的分支并不会一起更新,需要自己手动去更新。下面记录下网上找到的更新的方法 1、在本地装好github客户端,或者git客户端 2、clone 自己的fork分支到本地,可以直接使用github客户端,clone到本地,如果使用命令行,命令为: <!-- lang: bash --> git clone git@github.com:break123/three.js.git three.js 3、增加源分支地址到你项目远程分支列表中(此处是关键),命令为: <!-- lang: bash --> git remote add mrdoob git://github.com/mrdoob/three.js.git 此处可使用git remote -v查看远程分支列表 4、fetch源分支的新版本到本地 <!-- lang: bash --> [master]> git fetch mrdoob 5、合并两个版本的代码 <!-- lang: bash --> [master]> git merge mrdoob/master 6、将合并后的代码push到github上去 <!-- lang: bash -->

github更新自己fork的代码

谁说胖子不能爱 提交于 2020-03-18 12:21:25
某厂面试归来,发现自己落伍了!>>> @[github|fork] github上有个很方便的功能叫fork,将别人的工程一键复制到自己账号下。这个功能很方便,但有点要注意的是,当源项目更新后,你fork的分支并不会一起更新,這需要自己來手动去更新。下面记录下网上找到的更新的方法,使fork過來大項目源碼保持最新。 在本地装好github客户端,或者git客户端 clone自己的fork分支到本地,可以直接使用github客户端,clone到本地,如果使用命令行,命令为:<pre>git clone git@github.com :solome/OS.git</pre> 增加源分支地址到你项目远程分支列表中(此处是关键),命令为:<pre>git remote add solome git://github.com/solome/OS.git </pre> 此处可使用git remote -v查看远程分支列表 fetch源分支的新版本到本地<pre>[master]> git fetch solome</pre> 合并两个版本的代码<pre>[master]> git merge solome/master</pre> 将合并后的代码push到github上去<pre>[master]> git push origin master</pre> *注意:

Github上更新自己fork的代码

女生的网名这么多〃 提交于 2020-03-18 11:36:07
某厂面试归来,发现自己落伍了!>>> Github上更新自己fork的代码 一、前提 本文的前提是你已经在github上fork了别人的分支,并且弄好了跟github的ssh连接。 相关配置详情参考:https://help.github.com 二、详细操作 检出自己在github上fork别人的分支到rrest目录下,其中rrest目录之前是不存在的。 git clone git@github.com:yss/rrestjs.git rrest 然后增加远程分支(也就是你fork那个人的分支)名为bob(这个名字任意)到你本地。 git remote add bob https://github.com/DoubleSpout/rrestjs.git 如果你运行命令:git remote -v你会发现多出来了一个Bob的远程分支。如下: bob https://github.com/DoubleSpout/rrestjs.git (fetch) bob https://github.com/DoubleSpout/rrestjs.git (push) origin git@github.com:yss/rrestjs.git (fetch) origin git@github.com:yss/rrestjs.git (push) 然后,把对方的代码拉到你本地。 git

守护进程一

浪子不回头ぞ 提交于 2020-03-17 19:47:53
守护进程 什么是守护进程 守护进程是生存期长的一种进程。他们常在系统引导时装入,仅在系统关闭时才终止。因为他们没有控制终端,所以说他们是后台运行的。 如何创建守护进程 1.调用umask将文件模式创建屏蔽字设置为一个已知值(通常是0). 2.调用fork(),然后使父进程exit。 1.如果该守护进程是作为shell命令启动的,可以让shell以为该命令已执行完毕 2.保证该进程不是一个进程组的组长进程 3.调用setsid创建一个新会话 1.成为新会话首进程 2.成为新进程组,组长进程 3.无控制终端 4.将当前目录更改为根目录 5.关闭不再需要的文件描述符 6.某些守护进程打开/dev/null/使其具有文件描述符,这样任何一个企图读标准输入,写标准输出,错误输出的都不会产生效果。 注:也可以在第三步后再次fork,终止父进程,保证该进程不是会话首进程 实例: #include<apue.h> #include<syslog.h> #include<fcntl.h> #include<sys/resource.h> void demonize(const char *cmd) { int i,fd0,fd1,fd2; pid_t pid; struct rlimit rl; struct sigaction sa; umask(0); //设置文件创建屏蔽字 if((pid

linux守护进程

时光总嘲笑我的痴心妄想 提交于 2020-03-17 19:47:05
  守护进程是一种后台运行并且独立于所有终端控制之外的进程。   守护进程的启动   要启动一个守护进程,可以采取一下几种方式: 在系统期间通过系统的初始化脚本启动守护进程。这些脚本通常在目录etc/rc.d下,通过它们所启动的守护进程具有超级用户的权限。系统的一些基本服务通常都是通过这种方式启动的。 很多网络服务程序都是由inetd守护程序启动的。它监听各种网络请求,如telnet、ftp等,在请求到达时启动相应的服务器程序(telnet server,ftp server等)。 由cron定时启动的处理程序。这些程序在运行时实际上也是一种守护进程。 由at启动的处理程序。 守护程序也可以从终端启动,通常这种方式只用于守护进程的测试,或者是重启因某种原因而停止的进程。 在终端上用nohup启动的进程。用这种方法可以把所有的程序都变成守护进程。   守护进程的建立   先来看一个守护进程建立的例子:     1 #include <sys/types.h> 2 #include <signal.h> 3 #include <unistd.h> 4 #include <syslog.h> 5 6 #define MAXFD 64 7 8 void daemon_init(const char* pname, int facility){ 9 int i; 10 pit_t pid;

how to create two processes from a single Parent

依然范特西╮ 提交于 2020-03-17 12:15:52
问题 I know I'm going to need to use fork(), but this just creates a single child process. Do i simply call fork again from within the child process? Also, I need them to communicate through a signal or pipe, which is easier to implement and what do i need to know for doing that (functions, etc..) 回答1: To create a second process, call fork() again - either within the parent or the child (but not both!). Which you choose depends on whether you want this process to be a child of the original parent

关于github的pull requests,commits,issues,code reivew统计

帅比萌擦擦* 提交于 2020-03-15 20:35:12
Contributions github将所有的改动行为称为contributions 包括commit,pr, code review,isssue,fork等等。 github有个叫活动概览(Activity overview)的功能,将contributions按照下面四个象限进行分类统计: Commits Pull requests Code review Issues 如下图:( https://github.com/geektcp ) Commits commits统计提交行为,如下4个条件中任意一个满足即可: 1、新建了仓库; 2、在自己建的仓库提交了代码(包括新增文件,编辑文件,删除文件,重命名文件,移动文件路径等); 3、fork了一个新仓库; 4、创建了一个pull request请求; 5、合并了其他人的代码Merge pull request 下面条件不会产生commits: 1、提交代码时,git配置信息不对(git config --global --list),比如user.name和user.email和实际账户没有完全对应; 2、在fork的仓库只提交了代码,没有做其他任何操作。此外及时是这个仓库的管理者也不会产生commits统计,只有创建者才有commits统计。 Pull requests pull requests统计触发条件:

书写优雅的shell脚本(三) - shell中exec解析

▼魔方 西西 提交于 2020-03-15 08:19:41
  参考:《linux命令、编辑器与shell编程》 《unix环境高级编程》   exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。 bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、history、exec等等。   在说明exe和source的区别之前,先说明一下fork的概念。   fork是linux的系统调用,用来创建子进程(child process)。子进程是父进程(parent process)的一个副本,从父进程那里获得一定的资源分配以及继承父进程的环境。子进程与父进程唯一不同的地方在于pid(process id)。 环境变量(传给子进程的变量,遗传性是本地变量和环境变量的根本区别)只能单向从父进程传给子进程。不管子进程的环境变量如何变化,都不会影响父进程的环境变量。 shell script: 有两种方法执行shell scripts,一种是新产生一个shell,然后执行相应的shell scripts;一种是在当前shell下执行,不再启用其他shell。

shell中exec解析

﹥>﹥吖頭↗ 提交于 2020-03-15 08:18:13
  参考:《linux命令、编辑器与shell编程》 《unix环境高级编程》   exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。 bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、history、exec等等。   在说明exe和source的区别之前,先说明一下fork的概念。   fork是linux的系统调用,用来创建子进程(child process)。子进程是父进程(parent process)的一个副本,从父进程那里获得一定的资源分配以及继承父进程的环境。子进程与父进程唯一不同的地方在于pid(process id)。 环境变量(传给子进程的变量,遗传性是本地变量和环境变量的根本区别)只能单向从父进程传给子进程。不管子进程的环境变量如何变化,都不会影响父进程的环境变量。 shell script: 有两种方法执行shell scripts,一种是新产生一个shell,然后执行相应的shell scripts;一种是在当前shell下执行,不再启用其他shell。

Redis 持久化(10)

非 Y 不嫁゛ 提交于 2020-03-14 18:44:10
持久化机制 Redis速度快,很大一部分原因是因为它所有的数据都存储在内存中。如果断电或者宕机,都会导致内存中的数据丢失。为了实现重启后数据不丢失,Redis提供了两种持久化的方案,一种是RDB快照(RedisDataBase),一种是AOF(AppendOnlyFile)。 RDB RDB是Redis默认的持久化方案。当满足一定条件的时候,会把当前内存中的数据写入磁盘,生成一个快照文件dump.rdb。Redis重启会通过加载dump.rdb文件恢复数据。 什么时候写入rdb文件? 1、自动触发 a)配置规则触发。redis.conf,SNAPSHOTTING,其中定义了触发把数据保存到磁盘的触发频率。如果不需要RDB方案,注释save或者配置成空字符串""。 save 900 1 // 900秒内至少有一个key被修改(包括添加) save 300 10 //400秒内至少有10个key被修改 save 60 10000 //60秒内至少有10000个key被修改 注意上面的配置是不冲突的,只要满足任意一个都会触发。 RDB文件位置和目录: #文件路径 dir./ #文件名称 dbfilename dump.rdb #是否是LZF压缩rdb文件 rdbcompression yes #开启数据校验 rdbchecksum yes 为什么停止Redis服务的时候没有save