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

原文地址:https://www.cnblogs.com/leezx/p/6183488.html