git分散式版本管理系统,从安装到基本使用
首先,當然是安裝git了,不用尋思,官網下載即可
https://git-scm.com/downloads
?第二是設置賬戶,鼠標右鍵,選擇git bush,在命令窗口中進行設置
git config --global user.name "Your Name"git config --global user.email "email@example.com"?第三是在項目文件夾中右鍵git bush進入命令窗口,鍵入git init 初始化倉庫,命令會在本地文件夾創建一個.git的隱藏文件夾,通過文件夾設置可以看到該文件夾,請勿修改該文件夾內容
git init噠噠噠,基本環境搭配好啦,開始基本的使用吧
1.git add 文件名.后綴
通過該命令把文件存入倉庫暫存區
git add index.html?
2.git commit -m “解釋文檔”
通過該命令把add過的文件提交到倉庫工作區,-m后面是對本次提交的解釋,不建議為空,方便其他工作人員簡單明了的理解你干了什么
git commit -m "start working"3.版本回退
有了版本提交肯定還要有版本回退不是嗎?萬一哪天你bug了,你肯定不想一行一行的刪代碼的,那么我們的git是怎么做的呢?
git reset --hard 0023a4咦,這些git命令大都似曾相識,就是不明白是做什么的也能看出是個命令來著,但是這個0023a4是個什么鬼來著?其實這是我們的每一次對倉庫做出修改時git自動為每一次操作保留的id,你當然不需要把id全部都寫出來回歸版本,但是也不要輸入太少,因為在git多人協作的倉庫中,那提交與回退的數量也是驚人的。不過這個id,我們又是如何獲取的呢?
4.獲取每一次倉庫更改操作保留的id
git reflog是不是很簡單,過去的commit和reset操作全都出來啦,趕快看看你要回退到哪個版本吧!
5.撤銷修改,針對文件是保留到工作區之后修改的和暫存區之后修改的兩種情況會有不通過的結果
當然,你撤銷修改的git代碼是一致的
git checkout -- index.html現在呢,就遇到的兩種不同的情況分析得到的不同結果,以免將來一臉懵逼。
(1)保存到工作區后的修改,然后執行git checkout:回歸到版本庫工作區的狀態
(2)保存到暫存區后的修改,然后執行git checkout:回歸到版本庫暫存區的狀態
其實也不麻煩不是嗎》?就是無論如何,我都只退一步,這么理解會不會簡單了呢?!
當然,我們能夠在每一次提交之前發現自己做了一個不可修復的錯誤,使用? git checkout -- file? 總是好的,但是,如果你不但犯了一個致命的錯誤,還把它提交到了暫存區了呢?當然我們是有辦法修復這個錯誤的,我們在之前的文章中也提到了
就是? git reset --hard? 00123? 嘛!回退版本!直接回到上一次提交到倉庫時的狀態。當然,你也可以選擇更加溫和的方式,僅僅撤銷本次提交到暫存區的操作,保留你在文檔中的修改,畢竟,萬一你只需要修改掉“老子不干了這句話”,回退版本會不會太夸張了。撤銷提交保留修改命令為
git reset HEAD index.html6.刪除文件
在需要刪除某一個文件的時候,我們只需要輸入 git rm file就可以啦,之后記得要commit一下哦,把你的刪除提交到工作區,告訴倉庫你刪了誰
git rm test.txt git commit -m "confirm rm"7.遠程庫
首先你需要在GitHub倉庫鍵入你的ssh密匙,你可以在你的c盤user/administrator/.ssh文件夾中找到,注意這是一個隱藏文件夾,查看隱藏文件夾的方式可自行百度。如果在隱藏文件夾中沒有找到該文件,需要打開 git bush 鍵入下列命令創建該文件,空白部分為你的郵箱
ssh-keygen -t rsa -C " @ .com"無需設置密碼,一直回車即可。然后打開GitHub,把你在c盤user/administrator/.ssh文件夾中獲取的 id_rsa.pub(可用記事本打開全部復制)內容復制到GitHub設置中的ssh密匙處即可
?
(1)先有本地庫,將本地庫推送到遠程。在github上創建一個倉庫,例 learngit
連接遠程庫,注意使用英文字符,小心復制過來的字符的標點符號是中文樣式導致的無法連接,注意不要復制我的下行代碼,而是你的GitHub提供的路徑地址,下行代碼是我的庫的地址
git remote add origin git@github.com:legendforfree/learngit.git在本地庫推送到GitHub
git push -u origin masterorigin是遠程倉庫的意思,master,主分支,后面我們會提到分支的概念,-u的代碼運用是為了將本地分支和遠程分支關聯起來,今后我們可以省掉這一部分。
只要本地庫做出了修改,我們就可以通過下面的指令將其推送到遠程庫
git push origin master(2)先有遠程庫,后有本地庫(建議)
鍵入git clone 命令克隆遠程庫
git clone git@github.com:legendforfree/learngit.git8.分支
在之前我們講到,我們有一個master分支,也就是我們的主分支,但是在我們多人協作的具體工作中,一條主分支是不夠的,為了大家的工作互不干擾,我們需要在主分支的基礎上創建自己的工作分支,等到自己的功能完善再將其合并到主分支。下面我們從創建一個分支開始吧
(1)創建分支
git branch devgit checkout dev git branch dev 命令是創建dev分支, git checkout dev 命令是切換到dev分支
當然我們也可以是選擇 git checkout -b dev 一次性完成上面的兩條命令
查看分支命令,并在當前分支上加*標識
git branch(2)合并分支
切換到主分支或組分支,使用 git merge 命令合并需要合并的分支,例如把dev分支合并到master分支
git checkout master //切換到主分支git merge dev //合并dev分支到master分支
(3)刪除分支
把dev分支合并到主分支之后,你可以根據自己的需要看是否需要刪除dev分支,git鼓勵創建分支再合并刪除,因為這樣是更無害而安全的。
git branch -d dev? (4)任務現場
暫存工作內容但不保留到暫存區或工作區
假設你工作還沒完成,但是你接到了一個緊急的任務,因為沒完成所以不能提交,git提供了一個保存任務現場的命令。
git stash使用該命令,你做出的不完善的工作將被隱藏。然后你就可以快樂的創建一個bug分支愉快的改bug了。當你完成工作,合并并刪除bug分支之后,還得回到我們的任務現場,因為除了緊急任務需要完成,我們的日常工作也是一刻不得放緩!那么這時候,我們又該怎么辦呢?
?
git stash list //查看保留任務現場的列表 git stash pop //把任務現場內容提回本地并從list刪除,也可以在 pop 后面加上具體提取哪一個現場 stash@{0}git stash drop //從list刪除多余的隱藏任務現場,不提取
?
(5)推送分支
推送分支就是把改分支上的所有本地提交推送到遠程庫,推送時要指定本地分支,這樣,git就會把該分支推送到遠程庫上對應的分支上
git push origin dev把我們做開發的dev分支推送到遠程
(6)拉取分支
在我們推送分支之前往往需要先拉取,因為你不知道在你修改項目的時間范圍內,有沒有其他人往遠程進行過推送,如果有推送,那么你不pull就push肯定是要bug的,拉取遠程庫到本地的代碼為
git pull origin dev8.創建標簽
因為git的id比較長而不規則,所以有些不好記,所以git提供了一種方法作為對指定的某一個版本進行標記
git tag -a v1.0 -m "描述" a24534git tag是添加標簽,-a 指定標簽名(-a和-m可省略)v1.0是標簽名,也可以理解為產品的版本號,a24534是要打標簽的分支上的那次操作的id,可以忽略,忽略默認標簽給分支最后一次commit
git tag //查看標簽,標簽是按照字母排序的,不是創建時間 git tag show //查看標簽具體信息刪除標簽
git tag -d v1.0推送標簽到遠程
git push origin tag v1.0git push origin --tags //推送全部本地標簽
刪除遠程標簽
git tag -d v1.0 //先刪除本地標簽 git push origin :refs/tags/v1.0 //刪除遠程標簽?
常用命令
git status · 查看倉庫狀態git diff 查看文檔與上次提交后又做了哪些更改 git log 查看版本庫提交日志
git reflog 查看每一次提交或回退命令
git branch -D test 強行刪除未合并到其他分支的分支
git remote -v 查看遠程庫信息
?
轉載于:https://www.cnblogs.com/gitByLegend/p/10453348.html
總結
以上是生活随笔為你收集整理的git分散式版本管理系统,从安装到基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: #react-native BUG#
- 下一篇: 讨论下 Java 流文件读写缓存大小设置