1. 程式人生 > >git的安裝和簡單使用

git的安裝和簡單使用

top 多人 林黛玉 全部 一個 present 創建分支 git log 三方

  目前windows版本的git有幾種實現,但我們選擇msysgit發行版,這是目前做得兼容性最好的

  下載地址: http://code.google.com/p/msysgit/downloads/list

  安裝沒什麽註意的,如果對於安裝選項不熟悉,一直next就行。

什麽是Git和GitHub

Git —The stupid content tracker, 傻瓜內容跟蹤器,是一個由Linux內核開發者Linus為了更好地管理Linux內核開發而創立的分布式版本控制軟件

GitHub — 學生做版本控制最討厭的就是找服務器,配置太麻煩了。GitHub這個網站為每個用戶提供服務器托管其Git代碼庫,免費空間為300M

。註冊GitHub後你就會有0.3G的免費空間,不過只能創建公開項目

為什麽不選CVS或SVN

  Git提交/克隆/pull/push的速度更快

  Git的絕大多數操作都可以在本地完成,不需要頻繁連接服務器

配置SSH

GitHub選擇的默認通信方式是SSH,所以要先在Git裏面生成SHH Key,打開Git Bash在其中輸入如下命令:

  ssh-keygen -t rsa -C "*****.com"

  其中引號裏面為註冊github時的郵箱,輸入命令後連續按多次回車即可,在當前文件夾下會生成.ssh文件在裏邊 找到 id_rsa.pub文件,用記事本打開,復制其中的全部內容。登陸你的GitHub賬戶,依次點擊Account Settings

> SSH Public Keys > Add another public key,把id_rsa.pub中的內容拷貝進去 。至此,基本的設置已經完成了。

  測試一下, 輸入 ssh -T [email protected]

      技術分享

  選擇yes

       技術分享

  此時表示成功

git簡單使用

配置Git(將來查看歷史記錄的時候會用到,註意一定要配置)
git config 可以列出或修改配置
git config -l 打印可以配置的相關屬性
告訴git當前用戶名的姓名和郵件地址
git config —global user.name “張三” 配置提交者的用戶名字(全局配置)

git config —global user.email “[email protected]” 配置提交者的用戶郵箱
git —version 打印git版本
——————————————————————————————
① 桌面創建倉庫叫MyGit 利用終端創建: mkdir 目錄名
命令:cd desktop
命令:mkdir MyGit
② 從終端進入該文件
命令:cd MyGit
③ 命令:git init
作用:初始化git,裏面的有個隱藏文件叫.git,裏面隱藏有一些文件
現象:Initialized empty Git repository in /Users/zhangzenan/Desktop/MyGit/.git/
命令:cd .git
命令:ls -a 可以查看.git中的所有文件
命令:cd ..
回到MyGit目錄中
註:.git目錄就是Git版本庫(又叫倉庫,repository),被稱作為工作區.

如果用Git來寫紅樓夢,應該怎麽寫?
① 創建一個文本,內容標題:紅樓夢,將文件命名為HLM並保存到MyGit中
命令:git status
作用:打印倉庫狀態
⑤ 打印git狀態
命令:git status

終端打印內容:
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
HLM.txt(該名稱為紅色)
nothing added to commit but untracked files present (use "git add" to track)

翻譯內容:(英語一般,大致意思如下)
位於分支 master 上
初始化提交:
沒有被追蹤的文件:
(使用"git add <file>.."命令將要被提交的東西包含進去)
HLM.txt 要包含的文件名為HLM.txt
沒有東西被添加並提交但是目前有未被追蹤的文件(使用"git add"命令來追蹤)

命令:git add HLM.txt
作用:添加文件到git中(要求Git跟蹤文件,將文件置於Git管理之下)

再次git status

終端打印內容(下列顯示為成功內容)
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: HLM.txt (名稱變為綠色)

⑥ 可以開始寫紅樓夢第一回啦!
例如:第一回 甄士隱夢幻識通靈 賈雨村風塵懷閨秀(樣本)
git commit -m “第一回寫完了” 提交文件到Git庫中(每次提交都要添加註釋,例如對文件修改了什麽東西.-m後寫的是本次提交的說明)
⑦ 寫紅樓夢第二回,然後git status,會提示使用兩個命令 使用git add . (添加的一個快捷方式) 使用git commit -m *真正提交
⑧ git log 可以查看之前所做的所有事情 其中有個commit後面跟一堆東西,這是通過其他算法算出的一個唯一標識,將來”回滾”的時候會用到這個標識符
按q退出
⑨ git log --pretty=oneline 可以簡化log打印的內容

—————————————————————————————————————

① 發現標題一寫錯,重新修改,然後git status打印內容. 通過git diff 查看兩次修改的內容差別
② git commit -a -m 修改了標題一

—————————————————————————————————————

① 腦袋不清醒寫第三回,亂寫一通,第二天通過 git diff來查看區別
② 我想回滾到上一個階段,把工作區中尚未提交的內容廢除掉
git checkout HLM.txt 回滾沒有add的修改
③ 強制回滾到某一個版本的代碼(add/commit過的文件均可回滾) git reset --hard **
標識符可以只寫前幾位,或者直接粘過來
④ 想重新恢復到之前最新的那個版本
git reflog 查看之前所有的修改操作,根據前面的標識符進行回滾
—————————————————————————————————————
① 曹雪芹臨時有事要出差,於是邀請好友幫她寫東西,但是不能直接在原稿上修改,因此要創建分支
git branch 查看分支 ==> 查看稿件作者,默認為master
git branch zhangSan 創建分支
git checkout zhangSan 切換到zhangSan對應的分支
接下來由zhangSan來搞定
② 寫第三回.內容:第三回 賈雨村夤緣復舊職 林黛玉拋父進京都.寫完後提交git commit -a -m ‘第三回完成‘
git status 打印當前狀態
③ 曹雪芹出差回來,發現他寫的挺好,準備合並
切換到自己的分支 git checkout master
合並分支 git merge zhangSan
註:SVN創建分支很費勁,需要將所有數據全部復制,但是Git只是一瞬間的事情
④ 作者自己寫第四回,內容:第四回 薄命女偏逢薄命郎 葫蘆僧亂判葫蘆案.寫完以後提交一次,然後接到命令出差,讓好友zhangSan繼續幫她寫作
作者走之前提交:git commit -a -m "第四回完事"
zhangSan應該切換到自己的分支繼續寫作,寫第五回並提交.內容:第五回:遊幻境指迷十二釵 窗前明月光,意識地上霜
⑤ 作者回來以後發現他寫的不怎麽滴,準備自己重新寫第五回
先切換自己的分支,接著從第四回往後寫第五回,內容:第五回 飲仙醪曲演紅樓夢,然後提交
提交完以後,忽然他發現他好友寫的某些語句特別好,合並分支
現象(出錯):因為兩個人都寫了第五回,合並的時候會發生沖突
解決辦法:打開你的文件,會發現所有文件都在了,需要手動把不滿意的刪了,滿意的留下,改好以後再次提交

註:產生沖突的兩種情況
① 分支合並會產生沖突
② 多人同時修改一個文件會產生沖突
如果A修改但沒提交,B來了,修改並提交.如果這個時候A再提交,會發生沖突,因為當前文件狀態已經不是A那時候的狀態了.這個時候A要手動修改沖突的地方並再次提交

⑥ 作者認為第一階段結束,準備發布一個版本0.1
git tag 打印版本
git tag v0.1 添加一個0.1版本

本地管理結束

—————————————————————————————————————
如果頻繁出差會影響寫作效率,如果在外地也能寫作就好了
遠程管理:GitHub(提供免費的倉庫管理,而且可以查看別人的倉庫,例如FMDB)
GitHub(國外的):對於不公開的項目是收費的,公開項目是免費的
commits:提交次數
branches:分支次數
releases:發布版本數
contributors:貢獻者個數

技巧:找第三方庫都在這裏找,而且Star超過3000的最好都看看,常見類庫有1000個,知道的越多寫代碼越順暢.




git的安裝和簡單使用