什么是GIT?
Git是一種版本控制系統(tǒng),是一種工具,用于代碼的存儲和版本控制
集中式和分布式
集中式:Svn : 由中央服務(wù)器統(tǒng)一管理代碼 ,安全性差。
分布式:Git:每個電腦都有一個版本庫,安全性高。
四個工作區(qū):
Workspace: 工作區(qū),就是你平時存放項目代碼的地方
Index / Stage: 暫存區(qū),用于臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息。
Repository: 倉庫區(qū)(或版本庫),就是安全存放數(shù)據(jù)的位置,這里面有你提交到所有版本的數(shù)據(jù)。其中HEAD指向最新放入倉庫的版本。
Remote: 遠(yuǎn)程倉庫,托管代碼的服務(wù)器,可以簡單的
認(rèn)為是你項目組中的一臺電腦用于遠(yuǎn)程數(shù)據(jù)交換。
工作流程
git工作的一般流程:
- 在工作目錄中添加,修改文件
- 將需要進(jìn)行版本管理的文件放入暫存區(qū)
- 將暫存區(qū)的文件提交到git倉庫
git基本命令
下載git包
1.創(chuàng)建一個目錄
然后再這目錄里初始化GIT.
2.使用git init 命令將其變?yōu)橐粋€可以通過git管理的倉庫 注意事項:第一次使用git命令提交代碼之前,需要先設(shè)置用戶名及郵箱,之后就不需要了:
stu@stu-virtual-machine:~/myproject$ git config --global user.email
“you@126.com”
stu@stu-virtual-machine:~/myproject$ git config --global user.name “youname”
3.使用git add filename 添加文件到暫存區(qū)
4.使用git status 查看倉庫狀態(tài)
5.使用 git commit -m “版本描述信息” 提交版本到倉庫
**注意:切換回工作區(qū)時并修改了這個文件,用git reset --hard HEAD再切換到版本庫最新文件時,然后想切換回之前的工作區(qū),如果沒有保護(hù)現(xiàn)場,那么將找不到工作區(qū)的內(nèi)容。**所以我們工作區(qū)內(nèi)容想再次利用時應(yīng)該將其放入保護(hù)現(xiàn)場。
6.使用git log查看提交的歷史記錄
7.使用git reflog 查看對倉庫的操作日志
8.使用git diff HEAD 比較當(dāng)前內(nèi)容與最后一次提交的版本的差異,如下在main.c中添加了一行內(nèi)容,顯示 添加的一行前面有‘+’號標(biāo)識。如果內(nèi)容相同則該命令不顯示輸出結(jié)果。HEAD也可以省略默認(rèn)就是與最近 一次比較。
9.使用git checkout filename 放棄對工作區(qū)代碼的修改。
10.使用git reset HEAD filename 從暫存區(qū)撤銷
‘git reset --hard Head^^ 表示回到最近往前第二次的提交’
‘git reset --hard Head^ 表示回到最近往前第一次的提交’
11.使用git rm filename 刪除一個文件, 此時提交到暫存區(qū),需要commit后才在版本庫中刪除
12.使用git reset --hard HEAD^ 回退版本
git分支的操作命令
1.查看分支: git branch
2.創(chuàng)建分支: git branch 分支名
3.切換分支: git checkout 分支名
查看分支現(xiàn)在位于的文件:
4.創(chuàng)建并切換到該分支: git checkout -b 分支名
5.刪除分支,不能刪除當(dāng)前所處分支,切換到其它分支再刪除: git branch -d 分支名
6.合并某個分支到當(dāng)前分支: git merge 分支名 ,合并時可能產(chǎn)生沖突,需要解決沖突。 有時需要禁止快速合并,可執(zhí)行:git merge --no-ff -m ‘描述’ 分支名
7.歷史記錄一行顯示 : git log --pretty=oneline
8.以圖表形式顯示分支:git log --graph
9.保護(hù)現(xiàn)場 git stash,當(dāng)前工作區(qū)有代碼修改了,沒有提交,是不能切換到其他分支,我們可以先保存現(xiàn)場,再切換其他分支。
10.列出所有保存的現(xiàn)場信息 git stash list
11.取出某次的現(xiàn)場信息,繼續(xù)工作 :git stash pop “stash@{1}” ,默認(rèn)是最近一次,如果有多個現(xiàn)場,也 可以加上編號"stash@{1}"指定獲取某一個。不同分支的現(xiàn)場,應(yīng)該回到對應(yīng)分支再獲取,否則會自動合 并現(xiàn)場到當(dāng)前分支的工作區(qū)。
注意:取出某次的現(xiàn)場信息一旦取出就不在list中了,再次使用必須添加到list中去(用git stash)。
遠(yuǎn)程倉庫操作
生成通信密鑰:ssh-keygen -t rsa -C “su@126.com” ,生成的公鑰在/home/stu/.ssh/下,如下圖
上圖中的ENTER是修改存放公鑰的文件和文件夾的名字 我們直接回車 放在默認(rèn)位置就可以。
cat ~/.ssh/id_rsa.pub 查看公鑰
把得到的公鑰放在gitee網(wǎng)站中的個人倉庫->設(shè)置->左下有個公鑰,點進(jìn)去就可以看見。
測試與github或者gitee(碼云)有沒有連通。測試github 的命令 :ssh -T git@gitee.com
克隆項目:git clone 項目地址
這里把gitee網(wǎng)上倉庫的文件夾克隆給本地,在以后的上傳和下載都要用到這個克隆的地址(文件夾)。
復(fù)制地址,再用git clone命令即可。
提交分支到遠(yuǎn)程倉庫:git push origin 分支名
提交分支到遠(yuǎn)程倉庫,并跟蹤分支 :git push -u origin 分支名
拉取遠(yuǎn)程服務(wù)器上的分支更新到本地 :git pull origin 分支名
文章來源:http://www.zghlxwxcb.cn/news/detail-440738.html
注意上面的username 和password 是gitee網(wǎng)站上的賬號和密碼,我在最開始設(shè)置的時候設(shè)置了他們,這個也不設(shè)置,按回車跳過就好。文章來源地址http://www.zghlxwxcb.cn/news/detail-440738.html
到了這里,關(guān)于【源代碼管理工具GIT】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!