V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
whoami9894
V2EX  ›  git

git 操作不规范,差点被坑

  •  
  •   whoami9894 · 2020-06-11 00:21:41 +08:00 via Android · 6061 次点击
    这是一个创建于 1662 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我一般将代码上传 github 时,会先在 web 端新建一个仓库,然后 git clone 到本地,接着把代码复制进去,最后 push

    git clone 时如果被 abort,会把新建的文件夹删除

    今天我像往常一样 git clone 一个空仓库,里面有个 LICENSE,clone 的过程中我顺手 ctrl x 把代码拷进了 clone 的文件夹。因为网络原因 git 报了个 ssl error,然后 git 删除了文件夹,连带着我拷进去的代码

    写了一周的东西没了,想起来幸亏我昨晚备份了

    34 条回复    2020-06-15 10:06:50 +08:00
    yixiang
        1
    yixiang  
       2020-06-11 00:29:48 +08:00
    git remote add origin 了解一下
    codehz
        2
    codehz  
       2020-06-11 00:32:04 +08:00 via Android
    ?你新建 repo 的时候不是可以看到下面的提示的么,直接 git init, asd , commit, add origin , push origin master
    no1xsyzy
        3
    no1xsyzy  
       2020-06-11 00:45:18 +08:00
    @codehz #2 估计是偷懒不想自己复制 LICENSE
    不过我的话肯定是本地先 commit 过再 pull --rebase 的。
    而且写了一周我肯定是已经 commit 过几次了,大不了 merge 或者 rebase 啊
    Yvette
        4
    Yvette  
       2020-06-11 01:24:06 +08:00
    亲人两行泪
    jessehzj
        5
    jessehzj  
       2020-06-11 01:37:46 +08:00 via Android
    我也有类似的操作,代码压缩后删除,结果压缩包损坏了。。。
    yukiloh
        6
    yukiloh  
       2020-06-11 02:06:58 +08:00
    import into version control → share project into github
    反过来你要我用命令行我还得翻翻手册..
    msg7086
        7
    msg7086  
       2020-06-11 05:34:46 +08:00
    这怎么能说不规范呢。不规范指的是操作基本正确但是有一些小问题。你这是从头到尾就不是常规操作啊。

    首先,正常做法是本地 init 完了从 remote 里拉 license 然后 add 完了 push 回去。

    其次就算你要偷懒用 clone,那也是 clone 完以后把.git 目录搬到代码目录里来,而不是把代码搬过去。

    接着是你本地写了一星期的东西不用版本管理,直接裸写?
    我愿意裸写的代码大概也只有丢了也不可惜的代码,否则不可能连本地 git 都不开的。
    万一改个东西改出问题了,怎么回滚?

    最后才是你说的 clone 到一半瞎搬文件的问题。
    hantsy
        8
    hantsy  
       2020-06-11 08:05:47 +08:00   ❤️ 2
    看不懂在干嘛,不知道用过 Git 没有?
    UnknownR
        9
    UnknownR  
       2020-06-11 09:15:57 +08:00
    checkout -b 一个本地的不就好了,或者 remote add origin
    VDimos
        10
    VDimos  
       2020-06-11 09:23:53 +08:00 via Android
    没看懂,这什么操作?难道不是新建仓库,再 git pull --rebase 一下,接着 push 就行?手动复制是什么操作。。。
    MajestySolor
        11
    MajestySolor  
       2020-06-11 09:25:10 +08:00   ❤️ 2
    你这操作有点厉害,类似于拿了一把最先进的全配件步枪然后用枪托砸人 🐶
    sunhelter
        12
    sunhelter  
       2020-06-11 09:30:04 +08:00
    你这不是操作不规范,是没有使用 git 的习惯。写新项目的第一步是先去建仓库,然后 clone 到本地,init 完了再开始写
    grewer
        13
    grewer  
       2020-06-11 09:33:19 +08:00
    我 TM 直接疑惑
    sm0king
        14
    sm0king  
       2020-06-11 09:34:27 +08:00
    迷惑行为,原谅我才疏学浅,实在没看懂楼主操作
    GopherTT
        15
    GopherTT  
       2020-06-11 09:50:42 +08:00
    说了这么多 不就是不会规范使用呗
    cco
        16
    cco  
       2020-06-11 09:55:33 +08:00   ❤️ 1
    - -这不是不规范吧。。似乎是不会吧。。。
    Curtion
        17
    Curtion  
       2020-06-11 09:55:38 +08:00
    多谢楼主的经验,也多谢评论的教程...因为我现在就是楼主这么干的
    ylsc633
        18
    ylsc633  
       2020-06-11 09:58:22 +08:00
    很迷惑...

    跟二楼一样 新建 repo 的时候 下面都写了命令了..

    两种方式 你跟着执行就行了
    vivipure
        19
    vivipure  
       2020-06-11 09:59:38 +08:00   ❤️ 1
    我一般建了仓库 本地要么新建文件夹 clone,再把文件移进去提交(新手时)。
    现在是本地 git init -》 git remote add origin ... -> git pull -> 最后提交关联 git push -u origin <branch>
    hantsy
        20
    hantsy  
       2020-06-11 10:02:50 +08:00
    项目中用了 5,6 年的 Git,完全看不懂在搞什么,没见过这种骚操作。

    Github 官方文档,关于使用 Git 的部分: https://help.github.com/en/github/using-git
    sudoy
        21
    sudoy  
       2020-06-11 10:05:29 +08:00
    这个操作有点骚,正常是一般是把新建好的空仓库链接添加到本地,然后 push 就好了。请注意看新建好仓库他给你的提示
    aabbcc112233
        22
    aabbcc112233  
       2020-06-11 10:09:16 +08:00 via Android
    蜜汁操作。
    你的每一步都是迷。
    jugelizi
        23
    jugelizi  
       2020-06-11 10:13:54 +08:00 via iPhone
    这真不叫不规范 就是不会用
    stebest
        24
    stebest  
       2020-06-11 10:29:05 +08:00
    git 创建远程仓库也不一定非要打开网页创建,直接 curl 就行。
    git 创建空项目 LICENSE 不需要自动创建,之后不需要 clone 下来,添加远程 repo,add commit push origin 就可以
    ssl error 跟文件夹一点关系没有,是 ssl 证书问题
    而且 git 可以操作 head 指针,可以回溯。如果用 git,不会丢失。
    你这样确实是不会 git,不是操作规范不规范的问题,你这样只是装了 git,用不用 git 都没啥区别的。
    另外建议以后使用 git pull,不要直接用 clone 。
    stebest
        25
    stebest  
       2020-06-11 10:35:01 +08:00
    @stebest 抱歉说错了,用 git fetch 和 merge, 不要直接用 pull
    yeqizhang
        26
    yeqizhang  
       2020-06-11 10:48:20 +08:00 via Android
    楼主的问题不应该是没有 clone 完成就开始往里面放东西了吗?
    如果你用复制,本地也还会有一份吧!
    speculatorA
        27
    speculatorA  
       2020-06-11 10:54:18 +08:00
    gitee 教的操作吧,见过我同事这么做。
    不过 clone 同事操作文件夹我是没想到的 笑死了哈哈哈
    liuminghao233
        28
    liuminghao233  
       2020-06-11 10:57:20 +08:00 via iPhone
    git 还能这样用?
    sonxzjw
        29
    sonxzjw  
       2020-06-11 11:21:57 +08:00
    其实新仓库新项目的同步方法很多,楼主的是一个方法 remote add origin 也是一个方法。看个人习惯,暂时没有说最佳实践什么的。

    我虽然也用 remote add origin,但写完后的这个操作总是很蛋疼的会有 pull 和 push 的麻烦,例如历史不同步哇,你从来没干嘛甘的呀,虽然都有解决方法,但就觉得很是麻烦。
    BreezeInWind
        30
    BreezeInWind  
       2020-06-11 15:37:28 +08:00
    哪有啥规范不规范的,只不过就是没有 clone 完就着急往里边放文件导致的,下次耐心点等一会不就好了,再一个就是别 ctrl+x 啊,ctrl+c vtrl+v 才是王道
    wty
        31
    wty  
       2020-06-11 15:54:12 +08:00 via Android
    我也喜欢 clone 以后再加文件😂主要是懒得找 license
    Kobayashi
        32
    Kobayashi  
       2020-06-12 00:54:28 +08:00 via Android
    这不就是不会用吗?
    xlui
        33
    xlui  
       2020-06-12 10:34:40 +08:00
    @vivipure 看似一顿操作,实际上还是直接 clone 下来更方便 :)

    当然我没有遇到过不建仓库就写代码的情况。
    as94boy
        34
    as94boy  
       2020-06-15 10:06:50 +08:00
    @jessehzj 手动狗头,这种如果没有备份那真是心态崩了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2630 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:32 · PVG 15:32 · LAX 23:32 · JFK 02:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.