Git相關分享

Git相關分享

---- by 程序亦非猿 2016.03.07

這是在公司分享的稿子,演示為主,稿子內容不太詳細,有興趣的可以看看,推薦看看文末的資料~

控制版本系統(tǒng)(VCS)

版本控制是一種記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的系統(tǒng)

集中化控制系統(tǒng)(CVCS)

集中化控制系統(tǒng)都有一個單一的集中管理的服務器,保存所有文件的修訂版本,客戶端通過這臺服務器獲取文件或提交更新.

缺點

很明顯,中央服務器是個中心,一旦它出了問題就會影響整個系統(tǒng).

中央服務器單點故障,如果服務器一掛,那么整個系統(tǒng)就掛了,無法工作

甚至,中央服務器磁盤故障,很可能導致數(shù)據(jù)丟失,丟失所有歷史更改記錄等重要信息.

分布式版本控制系統(tǒng)(DVCS)

客戶端并不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。這么一來,任何一處協(xié)同工作用的服務器發(fā)生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復。因為每一次的提取操作,實際上都是一次對代碼倉庫的完整備份

Git--控制版本之神

簡史

作者,大神 Linus Torvalds

優(yōu)點:

  • 速度
  • 簡單的設計
  • 對非線性開發(fā)模式的強力支持(允許上千個并行開發(fā)的分支)
  • 完全分布式
  • 有能力高效管理類似 Linux 內核一樣的超大規(guī)模項目(速度和數(shù)據(jù)量)

Git常用命令

config

git config #--global 全局配置

git config --global user.name "alan"
git config --global user.email alancheen06@gmail.com

git config --list 查看配置列表

init

git init用來初始化項目

它會創(chuàng)建一個.git目錄,它包含所有初始化git的所有文件

clone

git clone url 
git clone url name #重命名成name

文件的狀態(tài)

接下去的命令跟文件狀態(tài)有關

add

untracked===>staged

git add file
git add . 

staged===>untracked

git reset HEAD file

commit

git commit -m "init"
git commit -a -m "init"
git commit -am "init"
git commit --amend  #想要撤消剛才的提交操作,可以使用 --amend 選項重新提交

// 演示

branch

創(chuàng)建分支

git branch branchname

PS:當init一個倉庫時,master需要先commit一遍才能新建其他分支,否則會得到一個錯誤fatal: Not a valid object name:'master'.

切換分支

git checkout branchname

創(chuàng)建并切換分支

git checkout -b branchname

查看分支

git branch -r -a -l

刪除分支

git branch -d branchname  #刪除本地分支  
git push origin --delete branchname #刪除遠程分支  

// 演示

遠程協(xié)作

git remote add [shortname] url

如:

git remote add origin url  #

git remote -v 可以查看所有遠程倉庫

fetch

git fetch remote-name 

fetch 只是從遠程倉庫 獲取數(shù)據(jù),并不會合并到工作區(qū)

pull

git pull origin master

pull = fetch +merge

push

git push [remote-name] [branch-name]

git push origin master

查看提交歷史

git log 查看提交歷史

  • --pretty=oneline 一行顯示
  • --stat 帶統(tǒng)計信息
  • --graph 圖形化

git reflog

回退版本

git reset --hard commitId

暫存

git stash/pop

標簽

git tag

幫助

git help cmdname

....

別名

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'

其他

gitignore

忽略不想提交的文件

gitflow

基于git的工作流

工具推薦

SourceTree

git GUI 軟件

iTerm2+oh my zsh

不管裝不裝逼,都要必備

學習資料推薦

GitPro2

內容很多,很詳細,堪稱權威,而且還有中文版,還有pdf等下載,一定要看看.

git-簡明指南(很棒)

非常棒的指南,極力推薦

githug

一個git的游戲,現(xiàn)在一共有54個關卡,從init開始,讓你在玩的過程中學習git,挺有意思

learnGitBranching

又是一個學習git的游戲,不過這個是針對分支的游戲,非常棒~非常推薦

另外歡迎關注:
我的Github
我的微博
我的微信公眾號:

微信公眾號

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 文 安如之 生命中,總要留些孤獨的時刻給自己,孤獨不代表是寂寞。在孤獨的那些時光里,或許你能得到在團體活動中不可能...
    安如之閱讀 332評論 0 2
  • 2月13日,中國電信加盟全球TD-LTE發(fā)展倡議(GTI),成為GTI組織的第100家成員企業(yè)。業(yè)界認為,中國電信...
    顧嘉閱讀 772評論 5 2
  • 我的港灣 渴望 海平面出現(xiàn)你的桅桿 期待 你的錨牢系於我的岸 今夜 不是因為風暴 而是為了出航 〔874〕
    微風LG閱讀 415評論 0 1
  • 記得第一次看到你的新聞是在回家的火車上,那是我歌首播的日子,我有些無聊地在沉悶的空氣里翻著手機。突然便看到了你的...
    木子心韻閱讀 382評論 2 1

友情鏈接更多精彩內容