遠端倉庫
分支管理
標籤管理
自定義git
$ mkdir learngit # 建立倉庫目錄
$ cd learngit
$ pwd # 顯示當前目錄
/users/michael/learngit
$ git init # 倉庫初始化
initialized empty git repository in /users/michael/learngit/.git/
$ git add readme.txt # 新增檔案到倉庫
$ git commit -m "wrote a readme file" # 提交
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
版本回退# 版本回退
$ git status # 檢視倉庫狀態
$ git diff readme.txt # 檢視檔案的修改
$ git log --pretty=oneline # 檢視所有歷史版本 (--pretty=oneline顯示簡略資訊)
$ git reset --hard head^ # 回退到上乙個版本 (head~n 回退到上n個版本)
head is now at e475afc add distributed
$ git reset --hard 1094a # 回退到指定版本號的版本
$ git reflog # 記錄每一次命令
工作區與版本庫
版本庫:目錄下的.git檔案(stage:暫存區,master:第乙個分支,head:指向當前分支)
用git add把檔案新增進去,實際上就是把檔案修改新增到暫存區;
用git commit提交更改,實際上就是把暫存區的所有內容提交到當前分支。
因為我們建立git版本庫時,git自動為我們建立了唯一乙個master分支,所以,現在,git commit就是往master分支上提交更改。
修改與刪除
git管理的是修改,而不是檔案
$ git checkout -- readme.txt # 撤銷工作區的修改
命令git checkout – readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態。
$ git reset head # 把暫存區的修改撤銷掉(unstage),重新放回工作區
刪除檔案:先刪除工作區,然後git add或 git rm刪除版本庫檔案
設定倉庫
1.建立ssh key。在使用者主目錄下,看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個檔案,如果已經有了,可直接跳到下一步。如果沒有,開啟shell(windows下開啟git bash),建立ssh key:
$ ssh-keygen -t rsa -c "[email protected]"
id_rsa是私鑰,不能洩露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。
2.登陸github,開啟「account settings」,「ssh keys」頁面:
然後,點「add ssh key」,填上任意title,在key文字框裡貼上id_rsa.pub檔案的內容:
新增遠端庫
echo "# blog" >> readme.md # 建立倉庫檔案
$ git init # 初始化倉庫
$ git add readme.md
$ git commit -m "first commit" # (前面做了可省略)
$ git branch -m master # 更改分支名字
$ git remote add origin [email protected]:lzrrr33/blog.git # 關聯github倉庫
$ git push -u origin master # 推送當前分支到遠端(第一次需要加-u引數,把兩個倉庫關聯起來)
$ git clone [email protected]:michaelliao/gitskills.git # 轉殖倉庫到本地
可以看到:
建立與合併分支
$ git checkout -b dev($ git switch -c dev) # 建立並切換分支(與以下兩條命令等價)
$ git branch dev # 建立分支
$ git checkout dev($ git switch master) # 切換分支
$ git branch # 檢視分支(當前分支會有*號)
$ git merge dev # 將dev分支合併到當前分支
$ git branch -d dev # 刪除分支
$ git log --graph # 檢視分支合併圖
$ git rebase # 將分叉的提交變成一條直線
待更新。。。
$ git tag v1.0 # 對當前分支打標籤
$ git tag # 檢視所有標籤
$ git tag v0.9 f52c633 # 根據commit號打標籤
$ git show v0.9 # 檢視標籤資訊
$ git tag -d v0.1 # 刪除標籤
$ git push origin v1.0 # 推送標籤到遠端
$ git push origin --tags # 推送所有標籤到遠端
$ git tag -d v0.9 # 刪除本地標籤
$ git push origin :refs/tags/v0.9 # 刪除遠端標籤(需先刪除本地標籤)
待更新。。。 Git命令學習一
配置使用者姓名,郵箱 全域性配置方法 git config global user.name android git config global user.email 111 qq.com只配置當前倉庫 git config global user.name android git config g...
Git命令學習記錄 一
git init git init命令會把目標目錄變成git所能管理的倉庫。使用時先cd到目標目錄,再執行。執行成功會顯示 initialized empty git repository in 目標目錄 git add myfs.txt git add 命令會把目標檔案提交到git檔案暫存區,即將...
學習git的一些命令
在沒有svn伺服器的時候,我們需要git來管理我們的 svn是集中式版本控制,git是分布式版本控制。git管理的 的所有版本既可以儲存到伺服器也可以儲存到本地。當有需要的時候我們才提交到伺服器 git命令列 1.建立乙個倉庫 2.初始化專案隨便新增幾個檔案 3.提交專案到版本控制 4.git co...