開源 分布式 版本控制工具(svn為集中式)
分為: 本地倉庫與遠端倉庫
團隊協同開發專案
工作目錄working tree -->暫存區 index --> 本地倉庫repository -->暫存區–> 遠端倉庫remote repository
工具
tortoisegit
idea
smartgit
sourcetree
基本命令git
檢視git資訊
git init
初始化 建立repository
git add
將檔案的修改提交到暫存區 index
git commit -m "描述資訊"
將暫存區的檔案提交到本地倉庫的master分支(系統自動建立的第乙個分支)
如果不add到快取區,是無法提交的
git status
檢視檔案當前狀態, 是否add 或 commit
git log --pretty=oneline
檢視提交日誌
git reset --hard head^
回到上個版本 head表示當前版本,每乙個^表示版本 head~100 上100個版本 head~3
git reset --hard 版本號
回到指定版本
git reflog
所有分支的操作記錄,包括被刪除的commit記錄
記錄每一條命令,可以檢視到版本號
gitdiff head --
檢視當前工作區檔案與倉庫中最新檔案的差異
git checkout --
丟棄工作區的修改(用倉庫中的檔案替換工作區檔案)
一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和倉庫一模一樣的狀態;
一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次 commit 或 add 時的狀態
git reset head
撤銷暫存區的修改
刪除1. git
rm 2. git commit -m "描述資訊"
刪除檔案
遠端倉庫
ssh免密連線(使用ssh協議位址)
#設定本地預設遠端倉庫資訊
$ git config --global user.name "username"
$ git config --global user.email "email"
#檢視是否已有公鑰
$ cd ~/.sh
#沒有則建立私鑰 非對稱加密演算法rsa
$ ssh-keygen -t rsa -c "eamil"
#私鑰id_rsa 公鑰id_rsa.pub
#複製到id_rsa.pub中內容到平台對應設定中
githubgit remote add 自定義遠端別名 [email protected]:使用者名稱/倉庫名.git
(本地倉庫名需和遠端一致)
本地關聯到遠端
git push -u 遠端別名 分支名
第一次提交,與遠端倉庫關聯
git push [遠端別名 分支名]
提交到遠端倉庫
git clone 位址
git pull 遠端名 分支名
(增量)更新, 從遠端抓取分支,如果有衝突,要先處理衝突。
碼雲 提供免費私有庫$ ssh -t [email protected] #檢視新增ssh是否成功
#其他操作與github相同
分支
建立新的分支,相當於在主分支master上新建了新的分支,並將head指向新的分支,以後的操作就在該分支上進行。
合併時就把master指向當前分支的最新版本,同時head指向master。
git checkout -b
建立並切換到分支
相當於 git branch 和 git checkout 兩條命令
git branch
檢視當前分支
git checkout
切換回master分支
git merge --no-ff -m "描述資訊"
合併分支
git branch -d
刪除分支
git branch -d
刪除乙個沒有合併過的分支
git log --graph
檢視分支合併圖
# 修改bug
git stash
臨時儲存當前分支的工作情況
git stash list
檢視所有的stash
恢復指定的stash
git stash drop
刪除stash
git stash pop
恢復並刪除
git cherry-pick 提交名
複製特定的提交到當前分支
# 最新版本(實測1.8.3不支援)2.27.0支援
git switch -c
建立並切換
git switch
切換
多人協作開發git remote -v
檢視遠端庫資訊
本地新建的分支如果不推送到遠端,對其他人就是不可見的
git push 遠端別名 branch-name
從本地推送分支, 如果推送失敗,先用git pull抓取遠端的新提交
git checkout -b branch-name origin/branch-name
在本地建立和遠端分支對應的分支,本地和遠端分支的名稱最好一致;
git branch --set-upstream branch-name origin/branch-name
建立本地分支和遠端分支的關聯
Git 學習筆記整理
git是什麼?git是乙個免費的開源分布式版本控制系統,旨在快速,高效地處理從小型到大型專案的所有事務。集中式與分布式的區別 git幾個特性 三種狀態 git有三種狀態 已提交 資料已經儲存在本地倉庫中 已修改 已修改檔案,但是還未儲存到倉庫中 已暫存 對乙個已修改檔案的當前版本做了標記,使之包含在...
git學習筆記整理 8 別名
git config檔案來輕鬆地為每乙個命令設定乙個別名 git config global alias.co checkout git config global alias.br branch git config global alias.ci commit git config global...
Git學習筆記整理純理論
1.git是分布式的,svn是集中式的 2.git每個歷史版本儲存完整的檔案,svn儲存檔案的差異 3.git可離線完成大部分操作,svn必須與 伺服器進行網路互動 4.git有著優雅的分支和合併功能 5.git有著更強的撤銷修改和修改版本歷史的能力 6.git速度更快,效率更高 工作區 我們編輯 ...