git版本号管理工具的上手
git是一個分布式的版本號管理工具
和其它集中式版本號管理 工具相比具有下面長處:
1.能夠在不聯網的情況下開發
2.能夠方便的建立本地分支
3.本地化的日志,高速獲得信息
git命令的使用
mkdir /d/myproject? (在本地d盤以下創建一個名為myproject的本地倉庫)
cd /d/myproject??? (切換到該文件夾下)
git init? (初始化為主枝)
git add filename? (加入�一個文件的記錄? ?一次僅僅能加入�一個文件)
git commit -m "something record"? (提交之前全部加入�的文件的記錄??)
git status? (查看倉庫內文件的狀態)
git diff filename? (比較倉庫內某文件和之前有什么不同)
git log (輸出近期文件改動的記錄)
git log --pretty=oneline (單行輸出改動記錄,比較清爽)
git reset --hard 134sdf(hash值) (git以下的回退命令,當中hash值代表的是之前的版本號,HEAD^表示上一個版本號 HEAD~n 表示之前第n個版本號)
git reflog (會把每一個版本號的hash值列出來,包含已經被回滾的版本號,用他能夠找到已經被我們拋棄的版本號的hash值,以便我們又一次回到那個版本號)
git checkout -- "filename" (恢復該文件到暫存區里面的最新版本號)
rm "filename" (刪除某個文件)
cat "filename" (打印某個文件)
?
------------------------------------------------------------------------------------------------------------------
Git和其它版本號控制系統如SVN的一個不同之處就是有暫存區的概念。
先來看名詞解釋。
工作區(Working Directory):就是你在電腦里能看到的文件夾,比方我的learngit文件夾就是一個工作區:
版本號庫(Repository):工作區有一個隱藏文件夾“.git”,這個不算工作區,而是Git的版本號庫。
Git的版本號庫里存了非常多東西,當中最重要的就是稱為stage(或者叫index)的暫存區,還有Git為我們自己主動創建的第一個分支master,以及指向master的一個指針叫HEAD。
分支和HEAD的概念我們以后再講。
前面講了我們把文件往Git版本號庫里加入�的時候,是分兩步運行的:
第一步是用“git add”把文件加入�進去,實際上就是把文件改動加入�到暫存區;
第二步是用“git commit”提交更改,實際上就是把暫存區的全部內容提交到當前分支。
由于我們創建Git版本號庫時,Git自己主動為我們創建了唯一一個master分支,所以,如今,commit就是往master分支上提交更改。
你能夠簡單理解為,須要提交的文件改動通通放到暫存區,然后,一次性提交暫存區的全部改動。
俗話說,實踐出真知。如今,我們再練習一遍,先對readme.txt做個改動,比方加上一行內容:
Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage.然后,在工作區新增一個LICENSE文本文件(內容隨便寫)。
先用git status查看一下狀態:
$ git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: readme.txt # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # LICENSE no changes added to commit (use "git add" and/or "git commit -a")Git很清楚地告訴我們,readme.txt被改動了,而LICENSE還從來沒有被加入�過,所以它的狀態是Untracked。
如今,使用兩次命令git add,把readme.txt和LICENSE都加入�后,用git status再查看一下:
$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # new file: LICENSE # modified: readme.txt #如今,暫存區的狀態就變成這樣了:
所以,git add命令實際上就是把要提交的全部改動放到暫存區(Stage),然后,運行git commit就能夠一次性把暫存區的全部改動提交到分支。
$ git commit -m "understand how stage works" [master 27c9860] understand how stage works2 files changed, 675 insertions(+)create mode 100644 LICENSE一旦提交后,假設你又沒有對工作區做不論什么改動,那么工作區就是“干凈”的:
$ git status # On branch master nothing to commit (working directory clean)如今版本號庫變成了這樣,暫存區就沒有不論什么內容了:
小結
暫存區是Git非常重要的概念,弄明確了暫存區,就弄明確了Git的非常多操作究竟干了什么。
沒弄明確暫存區是怎么回事的童鞋,請向上滾動頁面,再看一次。
?
--------------------------------未完待續------------------------------------
總結
以上是生活随笔為你收集整理的git版本号管理工具的上手的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AngularJS 拦截器和好棒例子
- 下一篇: SQL Tuning 基础概述01 -