嵌入式(shi)必(bi)學(git代碼(ma)托管(guan)常(chang)用(yong)命令大(da)全(quan))
時間:2024-09-05 來源:華(hua)清遠見
Git簡介
Git是(shi)目前世界上(shang)最先進的分布式版本(ben)控制(zhi)系統(沒有之一(yi))。
Git是 Linus Torvalds 為了幫助管理 Linux 內核開(kai)發而(er)開(kai)發的一個開(kai)放源(yuan)碼的版本控(kong)制軟件
對于任何一個文件,在(zai) Git 內部只有四(si)種狀態:未(wei)跟蹤untracked,已(yi)提交 (committed), 已(yi)修改(modified)和已(yi)暫存(staged)。
(1)已修(xiu)改(modified) :表示修(xiu)改了(le)某個文件,但(dan)還(huan)沒有提交給暫存(cun)區。
(2)已(yi)暫(zan)存(cun)(staged) :表示把已(yi)修(xiu) 改的文件放在下次提(ti)交時要保存(cun)的清單中。
(3)已提交(committed) :表示該文(wen)件已經被(bei)安全地保存在倉庫中了。
(4)未跟蹤(zong)(untracked):對于(yu)沒有(you)加入Git控制的文件。

Git 工作區、暫存區和版本庫
工作區:就是你在(zai)電腦里能看到的目錄(lu)。
暫存區:英文(wen)叫(jiao) stage 或 index。一般存放在 .git 目錄下的 index 文(wen)件(.git/index)中,所以我(wo)們(men)把暫存區有(you)時也叫(jiao)作索引(yin)(index)。
版本庫(ku):工作(zuo)區有一個隱藏目錄(lu) .git,這個不算工作(zuo)區,而是 Git 的(de)版本庫(ku)。
一、安裝Git
在(zai)linux下(xia)在(zai)線下(xia)載安裝(zhuang)git
命令:sudo apt-get install git
Git 常用的是以(yi)下 6 個命令:git clone、git push、git add 、git commit、git checkout、git pull

workspace:工作區
staging area:暫存區(qu)/緩存區(qu)
local repository:版(ban)本庫(ku)或本地倉庫(ku)
remote repository:遠程倉(cang)庫(ku)
二(er)、創建版本庫
第一(yi)步:添加git用戶:
sudo adduser git
sudo passwd git
第二(er)步:修改密碼文件:
sudo vim /etc/passwd
git:x:1005:1005::/home/git:/usr/bin/git-shell
第三步:安裝sshd服務(wu):
sudo apt-get install openssh-server
第四步:創建(jian)git倉庫:
創建一個新文(wen)件(jian)夾,進入(ru)(打開),然后執(zhi)行 git init 以創建新的 git 倉(cang)庫
git init
第五步:克隆倉庫
我(wo)們使用(yong) git clone 從(cong)現有 Git 倉庫中拷貝項(xiang)目(類似 svn checkout)。
克(ke)隆(long)倉庫的命令格(ge)式為:
git clone <repo>
如果我們需要(yao)克隆到指定的目錄(lu),可以使用以下命令(ling)格式:
git clone <repo> <directory>
參數說明:
repo:Git 倉庫。
directory:本地目(mu)錄。
三、建立分支
避免(mian)直(zhi)接在 main 或(huo) master 分支上進行開(kai)發,通常會創建一個(ge)新的分支:
1.查看分支:
git branch 顯(xian)示本地分(fen)支
git branch -r 顯(xian)示遠程分支
git branch -a 顯示所有(you)本地和遠程分(fen)支
git branch -v 顯(xian)示當前分支的信息和最近提交(jiao)信息
2. 創建新分支(zhi):
git checkout -b <new-branchname> 創建(jian)一個新分支(zhi)并切換(huan)到該分支(zhi)
git branch <branchname> 創建(jian)一個新分支但(dan)不自動切換
3.切換分支:
git checkout <branchname> 切換到一個(ge)已經存在的(de)本地分(fen)支
4.刪除(chu)分支:
git branch -d <branchname> 刪(shan)除已合并的本地分支
git branch -D <branchname> 強制刪(shan)除本地分(fen)支,不論是否合并
5.重(zhong)命名分支:
git branch -m <oldname> <newname> 重(zhong)命名本地分支
6.比較分支:
git diff <branch1> <branch2>
7.合并(bing)分支:
git merge <branchname> 將branchname分(fen)支(zhi)的更改合(he)并(bing)到當(dang)前分(fen)支(zhi)
四(si)、文(wen)件添加和刪除
在工作(zuo)目錄中(zhong)進行(xing)代碼編輯、添加新文件(jian)或刪除不需(xu)要的文件(jian)。
將修改過的(de)文件(jian)添加到暫存區,以便進行下(xia)一步的(de)提交操作(zuo):
git add xxx.c
git add xxx.h
git add . 或者添加所有修改的文件
1.查看(kan)狀態(tai):
git status
2.文件提交
git commit 將暫存區內容添加(jia)到倉庫中。
git commit –m “you comments” 將暫存(cun)區的(de)更改提交到本地倉庫,并(bing)添加提交信息
3.查(cha)看(kan)提交記錄:
git log
4.查(cha)看差別(bie):
git diff
5.撤銷修改:
git checkout
6.刪(shan)除文(wen)件:
git rm <filenname>
7.拉取最新(xin)更(geng)改(pull文件):
git pull --rebase
8.推送更改(push文件):
git push origin <branchname> 將(jiang)本地的提交推送到遠程(cheng)倉(cang)庫
五、版本回退
用(yong)于(yu)重置暫存區的文件與上一次的提(ti)交(commit)保持一致,工(gong)作區文件內容保持不變:
git reset 指(zhi)定版本
撤(che)銷(xiao)工作區中所有未(wei)提交的修改內(nei)容(rong),將暫(zan)存區與(yu)工作區都(dou)回到上一次版本,并(bing)刪除之前的所有信息提交:
git reset –hard 指定(ding)版本

