建立版本庫
1、建立乙個目錄
這個目錄裡的檔案可以被git管理起來:
$mkdir learngit
$cd learngit
通過git init 命令把這個目錄變成 git 可以管理的倉庫:
$ git init
initialized empty git repository in d:/tools/git/workspace/.git/
可通過ls -ah命令看到隱藏檔案.git,這個目錄是 git 來跟蹤管理版本庫的
$ ls -ah
2、把檔案新增到版本庫
建立乙個txt檔案:
$ echo "hello git" > readme.txt
第一步:用命令git add 告訴 git,把檔案新增到倉庫:add可以多次。
$ git add readme.txt
第二步:用命令git commit 告訴 git,把檔案提交到倉庫:
$ git commit -m "wrote a readme file"
引號裡是說明
第一步是用git add 把檔案新增進去,實際上就是把檔案修改新增到暫存區;
第二步是用git commit 提交更改,實際上就是把暫存區的所有內容提交到當前分支。
倉庫狀態
1、執行git status 命令看看結果:
$ git status
2、可以用git diff 命令檢視修改的內容
$ git diff readme.txt
版本回退
1、可以用git log檢視歷史記錄:
git log 命令顯示從最近到最遠的提交日誌,我們可以看到 3 次提交
$ git log
分記錄顯示:
$ git log --pretty=oneline
commit id 不是 1,2,3……遞增的數字,而是乙個 sha1 計算出來的乙個非常大的數字,用十六進製制表示
2、版本回退
git 必須知道當前版本是哪個版本,在 git 中,用 head 表示當前版本,也就是最新的提交3628164...882e1e0 (注意我的提交 id 和你的肯定不一樣),上乙個版本就是head^ ,上上乙個版本就是head^^ ,當然往上 100 個版本寫 100 個^ 比較容易數不過來,所以寫成 head~100。
$ git reset --hard head^
還可以返回原來的版本
$ git reset --hard 0066249b4e1bfb41eeb1faa07c8b569d1f835e96
(版本號)
git 的版本回退速度非常快,因為 git 在內部有個指向當前版本的 head 指標,版本回退時,只是把head指標的位置從現在這個版本指向返回的那個版本
git 提供了乙個命令git reflog 用來記錄你的每一次命令:
$ git reflog
撤銷修改
1、git checkout -- file 可以丟棄工作區的修改:
$ git checkout -- readme.txt
命令git checkout -- readme.txt 意思就是,把 readme.txt 檔案在工作區的修改全部撤銷,這裡有兩種情況:• 一種是 readme.txt 自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;• 一種是 readme.txt 已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
2、用命令git reset head file 可以把暫存區的修改撤銷掉(unstage),重新放回工作區:
$ git reset head readme.txt
刪除檔案
1、新建乙個test.txt檔案
$ touch test.txt
2、提交到分支
$ git add test.txt
$ git commit -m "add test.txt"
3、刪除檔案
$ rm test.txt
4、刪除過後
一、確實要從版本庫中刪除該檔案,那就用命令git rm 刪掉,並且git commit :
$ git rm test.txt
$ git commit -m "remove test.txt"
另一種情況是刪錯了,因為版本庫里還有呢,所以可以很輕鬆地把誤刪的檔案恢復到最新版本:
$ git checkout -- test.txt
傳上我的github
1、先提交到我的分支上
$ git add readme.txt
$ git commit -m "first commit"
2、傳到我的github上
$ git remote add origin
$ git push -u origin master
分支操作
1、檢視分支
$ git branch
2、建立分支
$ git branch
3、切換分支
$ git checkout dev
4、建立+切換分支
$ git checkout -b dev
5、合併某分支到當前分支
$ git merge dev
6、刪除分支
$ git branch -d dev
7、衝突
當在不同分支同時提交了東西,可能會造成衝突
git用<<<<<<<,*****==,>>>>>>>標記出不同分支的內容
當 git 無法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。用git log --graph 命令可以看到分支合併圖。
8、準備合併 dev 分支,請注意--no-ff 引數,表示禁用 fast forward:
$ git merge --no-ff -m "merge with no-ff" dev
合併後,我們用git log 看看分支歷史:
$ git log --graph --pretty=oneline --abbrev-commit
9、bug分支
git 還提供了乙個 stash 功能,可以把當前工作現場「儲藏」起來,等以後恢復現場後繼續工作:
$ git stash
建立臨時分支
$ git checkout -b issue-101
檢視之前的工作現場
$ git stash list
恢復現場:
方法二:用git stash pop ,恢復的同時把 stash 內容也刪了:
$ git stash pop
恢復到指定的stash
feature分支
新增乙個新功能時,你肯定不希望因為一些實驗性質的**,把主分支搞亂了,所以,每新增乙個新功能,最好新建乙個 feature 分支,在上面開發,完成後,合併,最後,刪除該 feature 分支。
建立分支
$ git checkout -b feature-vulcan
切回 dev,準備合併:
$ git checkout dev
銷毀分支
$ git branch -d feature-vulcan
強制刪除
git branch -d feature-vulcan
git的一些常用方法
1 撤銷add但未commit的檔案 git rm r cached path file 2 git 撤銷commit 2.1 git log 顯示提交的歷史 commit ee50348120302b19318ab6a564d4092dd87a85ef author shichaoxu date ...
一些git常用指令
cd e androidsss 具體進入到那個碟符 git init 生成.git資料夾 在當前目錄新建乙個git 庫 git status 檢視狀態裡面有幾個檔案 git commit am 提交到遠端伺服器 加備註 遇到的問題 git config global user.email 18513...
git常用的一些操作
一 你是第乙個提交 到github gitlab上的人 git init 初始化本地倉庫 git add 將檔案加到暫存區 git commit m first commit 將檔案提交到本地倉庫 git remote add origin git github.com test.git 鏈結git...