做了几年的外包技术提供商,和正在通过外包谋生的朋友分享 2 个经验教训:
###教训 1:
项目尾款结清前,除非是 双方合作很久并且相互信任了 。此时甲方提出将源码提交至他们的代码仓库,如果使用的是 Git,那么请注意下面的提交指令:
“git push -u origin_JiaFang master”
其中的 -u 参数 不能加,否则后续有新需求、改动,你如果在提交的时候图省事,直接用:
"git push master"
那么代码会被默认推送到甲方的代码仓库,而不是你的。
得到这个教训,是某一次的项目合作中,本来和甲方说好了尾款结清再推送所有源码。后来临近交付,甲方一直催,说大家都是自己人,不用这么担心,可以先把代码提交过来。这边也就同意了,但由于不清楚怎么添加多个远程 Git 仓库并执行推送,所以就问甲方负责人怎么搞,之后甲方给出了下面的指令步骤:
git remote add origin_JiaFang http://git.xxx.cn/2019/proj.code.git
git add .
git commit
git push -u origin_JiaFang master
大部分人可能和这边当时一样,没多想就直接照着做了。 然后最近在做个项目,需要将项目代码迁移到另一个代码托管平台,不知道怎么弄,忽然想起来之前有个甲方提供的方法好像可以试试,这边试的时候发现好像 push 指令不加 -u 参数也可以,即像下面这样:
git push origin_anotherPlatform master
这边就好奇,这个 -u 参数到底是啥意思,为啥好像不加也可以,于是去网上搜了下,得到如下的解释:
-u 表示将本地的 master 分支推送到 origin 主机,同时指定 origin 为默认主机,后面就可以不加任何参数使用 git push 了。
卧槽,好在这边有个习惯: 即每次 push 代码到远程仓库的时候,都会指定远程仓库名,即下面的形式:
git push origin_mine local_dev develop
如果这边图省事,直接
git push local_dev develop
代码就直接到甲方主机了,并且可能此时甲方还未付预付款!
###教训 2: 如果有同行或者合作伙伴说要给你介绍个项目,你为了感谢他,也为了尽快拿下这个项目,于是就允诺项目完结之后给他一笔好处费,那这里要注意的是:
- 适度给好处费,送礼品是 OK 的,做一个知道感恩的人挺好
- 接上一条,重点是“适度”。如过一个总预算 11 万的项目,你允诺给他: 首先免除之前的欠款 4k,另外在项目完结之后再支付 1.5w ,总计 1.9w 好处费
上面的第 2 条中的例子,是一个 极其错误的做法。此举直接导致该介绍人决心直接自己招 App 开发,吃掉这个项目的后续单子,而这个介绍人,他们的团队之前是只做 Web 和 Server 端的。
你以为,他会因为你大手笔的好处费而认为你是个很厚道的人?
---- Too young too naive !
有句话叫做“食骨知味”,百度下就知道了。
尤其是,你们做的东西质量体验比他们好得多,利润也稍微比他们高的情况下,越要注意这点。
所以正确的做法是,可以给好处费,但不要太傻,像 11w 给个将近 2w 的好处费。最多最多,给个 2k 就可以(送等值购物卡也行)。
别问这边怎么知道的,照着做肯定没坏处。
1
darksky 2020-06-28 19:49:39 +08:00
挺不错的
|
2
dioxide 2020-06-28 22:19:28 +08:00
期待分享更多经历.
|
3
cocoismywife 2020-06-28 22:33:31 +08:00
-u 不就是 up-steam 吗
|
4
deppwxq 2020-06-28 22:37:11 +08:00
支持一下
|
5
konakona 2020-06-28 23:19:41 +08:00
我感觉第一个例子,你想表达的应该是“只给当前已完成的”(一次)而非“后续每次提交都推送”(静默每次 push 都去了那个绑定本地 master 的远端仓库),对么……
|
6
kmdd33 2020-06-29 00:00:34 +08:00
upwork 推出了一个 contract 功能,类似于支付宝的担保交易功能,北美这边很流行的。
|
7
HolyBible777 2020-06-29 02:15:46 +08:00
谢谢楼主分享, 使我们避免入坑
|
8
BeiTianSoftware OP @konakona 是的,就是钱货两清这个原则,我们做技术外包,货物==我们的技术产出,源码之类的
|
9
BeiTianSoftware OP @cocoismywife 会顺带指定后续的静默推送远程仓库地址
|
10
hantsy 2020-06-29 08:42:39 +08:00
Git 这骚操作,还真少见。
一般我也就 origin ( Fork 到自己的账号下), upstream 两个源,其它特性什么开发都是自己 origin master 基础建立分支完成,比较 origin branch 和 upstream master 发送 PR 。 |
11
hantsy 2020-06-29 08:45:56 +08:00
@kmdd33 守规矩的国家 Contract 才有用。中国作外包基本都是靠关系,后面扯皮,我参与过国内的一些项目,基本尾款都收不到。
|
12
ivslyyy 2020-06-29 09:32:53 +08:00
很久以前我也参与过接活,做完了后,不断提新要求,语气也很粗鲁,感觉我是讨饭呢?然后说我做不到就不给剩下的钱了,好在也不多,我做的几百块前后端服务器数据库都包了
|
13
meathill 2020-06-29 10:05:34 +08:00
第一条太贱了……
|
14
BeiTianSoftware OP @ivslyyy 这种后续直接不要做了
|
15
BeiTianSoftware OP @meathill 也可能是甲方直接复制粘贴其他地方的命令步骤,但还是说明要谨慎一点
|
16
BeiTianSoftware OP @hantsy 一般靠关系趟出来的业务(不是刚性需求),很容易这样
|
17
hantsy 2020-06-29 12:05:57 +08:00
|
18
foo123 2020-06-29 14:10:38 +08:00 via iPhone
针对教训 1,我觉得把甲方 master clone 下来,然后你们 merge 、commit 一次不就好了么,如果甲方不让 clone master 那么配置下 set-upstream 也行,push 完后重新配置下 set-upstream
|
19
BeiTianSoftware OP @hantsy 所以靠谱的客户很重要
|
20
BeiTianSoftware OP @foo123 当时没考虑这些东西的,只是甲方那边给过来的操作步骤提示,这边原封不动地就执行,这一点太草率了
|
21
xwhxbg 2020-06-29 16:06:02 +08:00
我去我这边直接 push 的,我要代码也没啥用啊,我都是按周结算,小时收费,真想不到有这种甲方,看来我还是天真了。
|
22
1044523901 2020-06-30 17:22:48 +08:00
尾款未收到切记,不要提供任何项目代码。
|
23
vansouth 2020-06-30 17:43:47 +08:00
不是应该收到大部分钱才会提供代码的吗?未接触过所有不解
|
24
BeiTianSoftware OP @1044523901 实在甲方说要体现诚意,给初期代码(反正都是有提交历史,选一个比较靠前的版本)也行
|
25
glovebx 2020-07-02 00:26:31 +08:00
这两条建议还是很实在的,有干货的一帖
|