美文网首页
Git推送Github实录

Git推送Github实录

作者: 烟雨醉尘缘 | 来源:发表于2018-11-28 15:12 被阅读0次

    第一次使用命令行的git工具

    生成秘钥对略过。
    添加公钥到Github也很简单略过。
    配完之后用ssh -T git@github.com这条命令看看是不是能成功连接上,它说hi......就说明OK了。
    然后是创建仓库git init
    随便创建点测试数据,基本操作。接着去GitHub上创建仓库。
    最后关联两者
    git remote add origin https://github.com/yourname/test.git
    git push -u origin master
    就可以收工了,那个-u是为了绑定。
    之后就可以简单的使用git push进行操作了
    如果你有客户端那是最轻松快捷的。

    最常见的操作

    我在我的Git的文件内新建了一个Markdown的文件,然后写好内容。之后开始git add 我的文件.md 将它加入暂存区。git commit -m "第一篇Markdown文件" 提交到仓库。最后一步git push推送到远程仓库就收工了。就是我一次很简单的git操作。

    推送大文件

    某天下午我想把老师的课件也上传到GitHub,方便后人。但是GitHub是不推荐你把50M以上的文件push上去的,而且禁止100M以上的文件上传的。而我这边有一份文章就是220M的,就去百度了一下,还好GitHub提供了大文件的服务。


    github LFS服务

    1.安装
    我是mac系统,直接执行如下命令安装:

    brew install git-lfs

    2.进入本地仓库目录初始化LFS

    git lfs install

    3.用git lfs管理大文件
    用git lfs track命令跟踪特定后缀的大文件,或者也可以直接编辑.gitattributes,类似于.gitignore文件的编写,在此我只处理pdf文件:

    git lfs track "*.pdf"

    然后将.gitattributes文件添加进git仓库:

    git add .gitattributes

    4.接下来就可以像平时使用git那样正常使用了,可以将大文件提交到GitHub了

    git add 1.pdf
    git commit -m "commit"
    git push

    删除几次commit

    我发现了我有一次commit不小心把一些不该上传的文件上传了。第一想法是立马在本地进行删除,然后再来一次Git的提交操作。然而,GitHub上面的记录并没有被删掉,也就是说还是可以看到这些不该上传的文件。没办法,只能上网搜了一下。
    记录一下,首先是查看日志git log --pretty=oneline 找到我错误操作的那几步。然后开始回退git reset --hard HEAD^^ <--我这里是回退了2个版本到正确的部分,然后是直接git push --force即可。这时候到github上一看记录就没了。注意这时候本地还是可以还原的,如果你确定没有问题了,而又不想记录那些多余的数据,你可以直接在本地删除这个仓库然后在GitHub上pull 一份。如果发现自己回退了又后悔了,可以用git reflog查看每次的commit id,然后用git reset --hard commitid来返回。注意这里你返回了还需要git push --force来让GitHub也返回之前的状态,这里注意你的commit 时间就是你之前做的时间。

    删除文件操作

    这个很重要。
    我直接用rm -rf file删除了一个文件,然后Git会检测到然后告诉我。如果我真的要删掉,那就用git rm file来从版本库中删除;如果是误删,就用git checkout -- file来恢复。就算你真的把它删了,你还是可以通过版本回退来得到它。。。所以你其实是删不掉的,要完全删除一个文件,你还需要把它的记录也一并删除,这个就不涉及了。

    分支工作并且合并分支

    主要是需要在分支上进行一些修改的工作。首先创建分支git branch dev,然后切换到该分支上面git checkout dev,进行自己的工作并且进行commit。然后回到主分支上进行工作,git checkout master,之后就是把两者合并--git merge dev。如果顺利的话git会处理好一切,如果它解决不掉,你可以通过git status查看那些它解决不掉的文件,手动编辑,然后再addcommit即可

    推送分支

    今天向GitHub推送了自己的分支,用的指令是git push --set-upstream origin dev。这个时候Github上面就会多一个branch出来,然后告诉你可以生成pull request,这个时候点击,你就可以生成了,然后按照它的提示,要么网页版改正,要么就是用命令行解决。都有相应的提示,merge完成之后就会有相应的提示了。

    ignore文件不起作用

    首先git的规则是:.gitignore只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore 是无效的。所以如果那些文件已经列入了版本管理系统,那么你在.gitignore里面就算写了它,git还是会继续跟踪的,所以需要删除下缓存:
    git rm -r --cached .
    git add .
    git commit -m '让gitignore生效'

    相关文章

      网友评论

          本文标题:Git推送Github实录

          本文链接:https://www.haomeiwen.com/subject/cxaaqqtx.html