zoukankan      html  css  js  c++  java
  • Git | Github | 版本控制 | 多人协作

    2019年12月30日

    关键词:

    • 更新,就像人的生长一样,所有的一切都要更新,为了把控这个更新的进程,失败后随时回溯,我们创造出了git;
    • 文本文件(代码、文稿),非文本文件git处理不了;
    • 共享,GitHub共享天堂;
    • 多人协作,大项目的高效协作;
    • 版本控制,能有效的查看文件的所有版本,每次都修改了什么,修改前是什么状态;

    什么情节下适合用git?

    1. 需要长期修改编辑的文本文件;
    2. 代码管理,最典型的添砖加瓦的写作;
    3. 论文/小说写作,也是需要不断polish的写作;

    什么不适合用git?

    1. 大文件
    2. 非文本文件
    3. 一次性文件
    4. 无需共享的文件

    几大主题:

    1. 项目设计,如果架构一直变来变去,那么git的意义就不大了;
    2. 共享,这个最简单,GitHub建一个仓库,来回pull、push就行;
    3. 版本控制,其次,了解和控制自己对文件的历史修改,能随时根据tag回忆起自己的历史记录,在有需要时回溯;
    4. 大型项目的多人协作,最难,需要构建branch,大部分小团队用不到,小项目一个人搞比较高效;

    其他:

    • git和word的写作比较,word主要是用的人多,方便,在两个版本之间很高效,版本多了就不行了,必须多文件;git则是入门门槛比较高,上手后非常高效
    • 什么适合写博客?杂碎的、单独的随笔就放到博客;什么适合放到GitHub,只要是一个小项目,涉及到长期修改的就放GitHub;博客文章整理后可以放入GitHub

    参考:

    Two simple uses of Git for writing a thesis: reviewing & focussing 


    Git教程

    Git是干嘛的?

    目前世界上最先进的分布式版本控制系统

    版本控制,当你在搞编程这种文本编辑的工作时就必然会碰到版本问题,你很想知道你每一次都修改了哪些内容,有一天你发现你现在的代码写错了,想回到原来的地方,没有版本控制你会抓狂。当代码量多起来时,修改的次数多起来后,你会发现版本控制更为重要。

    Github又是干嘛的?

    代码托管,俗称开源圣地,免费用户的代码都是公开的,大家可以互相分享自己的代码,而且大项目可以协同合作。


    如何控制版本?版本控制应该能做到什么?

    image

    如何将代码上传到Github?

    配置

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    $ git config --global user.name "leezx"

    创建仓库

    $ git init
    Initialized empty Git repository in /Users/michael/learngit/.git/

    添加文件到仓库

    $ git add test.txt

    提交文件到仓库

    $ git commit -m "wrote a test file"
    [master (root-commit) 4373b19] wrote a test file
     1 file changed, 2 insertions(+)
     create mode 100644 test.txt

    注:-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

    问:为什么要分add和commit两步?commit一次可以提交多个文件,是最终的提交过程


    查看仓库当前状态

    $ git status

    查看修改内容

    $ git diff test.txt
    diff --git a/test.txt b/test.txt
    index d8036c1..ec61677 100644
    --- a/test.txt
    +++ b/test.txt
    @@ -1,2 +1,3 @@
     Git is a version control system.
    -Git is free software.
     No newline at end of file
    +Git is free software.
    +hahaha!
     No newline at end of file

    光diff的输出格式就得再开一片文章了:linux diff详解

    查看修改后提交

    $ git add test.txt
    $ git commit -m "add hahaha!"

    注:修改后必须做两步,add 和 commit


    查看历史版本

    $ git log

    回退到指定版本

    $ git reset --hard 420e77b
    $ git reset --hard HEAD^

    再回到前面的版本

    $ git reflog

    git工作原理?

    工作区:写代码的地方

    版本库:包含暂存区和分支master

    理解你init、add、commit、log、reflog每一步都具体干了些什么?



    怎么连接本地 Git 和 Github?

    生成密码文件

    $ ssh-keygen -t rsa -C "youremail@example.com"

    去Github填写密码

    复制 id_rsa.pub

    连接远程的Github

    $ git remote add MyScripts git@github.com:leezx/MyScripts.git
    $ git push -u MyScripts master

  • 相关阅读:
    【跃迁之路】【461天】刻意练习系列220(2018.05.12)
    【跃迁之路】【461天】刻意练习系列220(2018.05.12)
    【跃迁之路】【461天】刻意练习系列220(2018.05.12)
    Ajax打开三种页面的请求
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/leezx/p/6183488.html
Copyright © 2011-2022 走看看