Git簡介
Git是目前世界上最先進的分布式版本控制系統(沒有之一)。
Git是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件
對于任何一個文件,在 Git 內部只有四種狀態:未跟蹤untracked,已提交 (committed), 已修改(modified)和已暫存(staged)。
(1)已修改(modified) :表示修改了某個文件,但還沒有提交給暫存區。
(2)已暫存(staged) :表示把已修 改的文件放在下次提交時要保存的清單中。
(3)已提交(committed) :表示該文件已經被安全地保存在倉庫中了。
(4)未跟蹤(untracked):對于沒有加入Git控制的文件。
Git 工作區、暫存區和版本庫
工作區:就是你在電腦里能看到的目錄。
暫存區:英文叫 stage 或 index。一般存放在 .git 目錄下的 index 文件(.git/index)中,所以我們把暫存區有時也叫作索引(index)。
版本庫:工作區有一個隱藏目錄 .git,這個不算工作區,而是 Git 的版本庫。
一、安裝Git
在linux下在線下載安裝git
命令:sudo apt-get install git
Git 常用的是以下 6 個命令:git clone、git push、git add 、git commit、git checkout、git pull
workspace:工作區
staging area:暫存區/緩存區
local repository:版本庫或本地倉庫
remote repository:遠程倉庫
二、創建版本庫
第一步:添加git用戶:
sudo adduser git
sudo passwd git
第二步:修改密碼文件:
sudo vim /etc/passwd
git:x:1005:1005::/home/git:/usr/bin/git-shell
第三步:安裝sshd服務:
sudo apt-get install openssh-server
第四步:創建git倉庫:
創建一個新文件夾,進入(打開),然后執行 git init 以創建新的 git 倉庫
git init
第五步:克隆倉庫
我們使用 git clone 從現有 Git 倉庫中拷貝項目(類似 svn checkout)。
克隆倉庫的命令格式為:
git clone <repo>
如果我們需要克隆到指定的目錄,可以使用以下命令格式:
git clone <repo> <directory>
參數說明:
repo:Git 倉庫。
directory:本地目錄。
三、建立分支
避免直接在 main 或 master 分支上進行開發,通常會創建一個新的分支:
1.查看分支:
git branch 顯示本地分支
git branch -r 顯示遠程分支
git branch -a 顯示所有本地和遠程分支
git branch -v 顯示當前分支的信息和最近提交信息
2. 創建新分支:
git checkout -b <new-branchname> 創建一個新分支并切換到該分支
git branch <branchname> 創建一個新分支但不自動切換
3.切換分支:
git checkout <branchname> 切換到一個已經存在的本地分支
4.刪除分支:
git branch -d <branchname> 刪除已合并的本地分支
git branch -D <branchname> 強制刪除本地分支,不論是否合并
5.重命名分支:
git branch -m <oldname> <newname> 重命名本地分支
6.比較分支:
git diff <branch1> <branch2>
7.合并分支:
git merge <branchname> 將branchname分支的更改合并到當前分支
四、文件添加和刪除
在工作目錄中進行代碼編輯、添加新文件或刪除不需要的文件。
將修改過的文件添加到暫存區,以便進行下一步的提交操作:
git add xxx.c
git add xxx.h
git add . 或者添加所有修改的文件
1.查看狀態:
git status
2.文件提交
git commit 將暫存區內容添加到倉庫中。
git commit –m “you comments” 將暫存區的更改提交到本地倉庫,并添加提交信息
3.查看提交記錄:
git log
4.查看差別:
git diff
5.撤銷修改:
git checkout
6.刪除文件:
git rm <filenname>
7.拉取最新更改(pull文件):
git pull --rebase
8.推送更改(push文件):
git push origin <branchname> 將本地的提交推送到遠程倉庫
五、版本回退
用于重置暫存區的文件與上一次的提交(commit)保持一致,工作區文件內容保持不變:
git reset 指定版本
撤銷工作區中所有未提交的修改內容,將暫存區與工作區都回到上一次版本,并刪除之前的所有信息提交:
git reset –hard 指定版本