Git&GitHub簡介與入手(一)
一、Git版本控制
1、集中式版本控制工具:SVN(版本控制集中在服務器端,會有單點故障風險);
2、分布式版本控制工具:Git;
3、Git簡史
Talk is cheap, show me the code.(Linus)
4、https://git-scm.com/ 官網下載安裝git
(後面均使用默認設置);
二、Git&GitHub簡介
1.Git的結構與GitHub的關系
2、Git&GitHub---本地庫與遠程庫的交互方式
(1)團隊內的合作
(2)跨團隊協作
三、Git命令行操作
1、添加,提交
(項目級別信息保存位置顯示)
(系統用戶級別信息保存的位置);
(第二句表示本地庫中沒有東西,第三句表示暫存區中沒有什麽可提交的。);
(用vim thy.txt新建了一個文本文件)
(行末換行符進行改變,將文件添加到緩存區);
(文件已經添加至緩存區了,可用提示命令從緩存區撤回);
(git commit thy.txt提交之後,要求對這次改變輸入提交信息);
(master根提交,“版本號”,一個文件,一行增加,創建了文件)
(緩存區中沒什麽提交的,工作樹是幹凈的);
(對thy.txt進行了修改,用add命令更新到暫存區,或用checkout在你的工作目錄裏取消修改,暫存區中沒沒有可提交的修改,用add和commit添加到暫存區並提交,或直接提交);
(使用add後顯示status,然後提交,加上-m可以不用進入vim編輯器寫提交信息);
2、版本穿梭
(commit後面是這次提交的索引,經過哈希算法算出來的,head是指針,指向當前版本,版本穿梭就是移動改指針)
(三種查看歷史記錄,reflog能顯示所有版本,oneline只能顯示過去版本,索引號選中自動復制)
(前進後退都用這個命令)
(一個^表示後退一個版本,2個後退兩個,一次類推,太多了可以用~3表示後退三個版本)
(用HEAD命令使三個區保持一致)
(找回永久刪除的文件,回退到過去版本)
(沖突,當合並時,發現合並的兩個分支被修改了同一個文件的相同位置,就會產生沖突,git不知道要保留哪一個,所以會產生人工合並取舍);
(哈希算法可以用來檢驗文件傳輸是否有損,哇,以前不知道還有這作用0.0);
(版本管理是用哈希將每次的提交生成相應的哈希值,然後版本的管理就是一條鏈表,然後指針在上面移動。)
(創建分支其實是創建一個指針,而不是真的將文件再復制一遍,分支的切換是移動head指針,所以效率很高!)
Git&GitHub簡介與入手(一)