Git實(shí)際開發(fā)操作(簡(jiǎn)化)

Git 一款免費(fèi)、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。
官網(wǎng)下載地址https://git-scm.com/downloads/
Git是用于Linux內(nèi)核開發(fā)的版本控制工具。采用分布式版本庫(kù)的作法,不需要服務(wù)器端軟件,就可以運(yùn)作版本控制,使得源代碼的發(fā)布和交流極其方便。速度快,最為出色的是它的合并追蹤(merge tracing)能力。

    工作實(shí)際開發(fā)操作步驟(簡(jiǎn)化):
    一、如何從GitLab上clone項(xiàng)目:
    Android Studio工具VCS-->Checkout from Version Control-->Git  Git Repository URL:填寫剛剛復(fù)制的項(xiàng)目地址 Parent Directory:項(xiàng)目路徑  Directory Name:項(xiàng)目文件夾名稱
    二、如何創(chuàng)建上傳至GitLab:
    1.輸入用戶名與郵箱,--global 參數(shù)表示你這臺(tái)機(jī)器上所有的Git倉(cāng)庫(kù)都會(huì)使用這個(gè)配置。
    git config -- global user.name "Your Name"
    git config -- global user.email "email@example.com"
    2.檢查電腦是否已經(jīng)有 SSH Keys
    cd~/.ssh
    ls
    3.創(chuàng)建一個(gè) SSH Keys  第一個(gè)Enter表示Keys存儲(chǔ)的位置,默認(rèn)按回車鍵即可。第二個(gè)和第三個(gè)Enter表示Push文件的時(shí)候要輸入的密碼,不需要密碼就默認(rèn)按回車鍵即可

$ ssh-keygen -t rsa -C "your_email"
4.開發(fā)工具中修改項(xiàng)目外部.gitignore
*.iml
.gradle
/local.properties
.idea
.DS_Store
/build
/captures
.externalNativeBuild
5.創(chuàng)建本地Git倉(cāng)庫(kù) Android Studio頂部菜單欄上的VCS-->Import into Version Control-->Create Git Repository
6.關(guān)聯(lián)遠(yuǎn)程倉(cāng)庫(kù) git remote add origin git@gitlab.com:wildma/WildmaGit.git 項(xiàng)目的遠(yuǎn)程地址
7.添加文件 VCS-->Git-->Add...
8.提交文件 每次提交前需要先更新項(xiàng)目VCS-->Update Project 選中Merge,點(diǎn)擊OK 然后提交文件VCS-->Git-->Commit Directory...
9.將提交的文件推送到遠(yuǎn)程倉(cāng)庫(kù) VCS-->Git-->Push...

   Git基本常用命令:

mkdir: XX (創(chuàng)建一個(gè)空目錄 XX指目錄名)
  pwd: 顯示當(dāng)前目錄的路徑。
  git init 創(chuàng)建新的 git 倉(cāng)庫(kù)(把當(dāng)前的目錄變成可以管理的git倉(cāng)庫(kù),生成隱藏.git文件)
  git add XX 把xx文件添加到暫存區(qū)去。(git add -A .來(lái)一次添加所有改變的文件 git add -A表示添加所有內(nèi)容 git add . 表示添加新文件和編輯過(guò)的文件不包括刪除的文件 git add -u 表示添加編輯或者刪除的文件,不包括新添加的文件)
  git commit –m “XX” 提交文件 –m 后面的是注釋。
  git push origin master Git會(huì)把master分支推送到遠(yuǎn)程庫(kù)對(duì)應(yīng)的遠(yuǎn)程分支上(可以把 master 換成你想要推送的任何分支)
  git status 查看倉(cāng)庫(kù)狀態(tài)
git log 查看歷史記錄
  git diff XX 查看XX文件修改了那些內(nèi)容
  git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一個(gè)版本
  (如果想回退到100個(gè)版本,使用git reset –hard HEAD~100 )
  cat XX 查看XX文件內(nèi)容
  git reflog 查看歷史記錄的版本號(hào)id
  git checkout -- XX 把XX文件在工作區(qū)的修改全部撤銷。
  git rm XX 刪除XX文件
  git remote add origin https://github.com/tugenhua0707/testgit 關(guān)聯(lián)一個(gè)遠(yuǎn)程庫(kù)
  git push –u(第一次要用-u 以后不需要) origin master 把當(dāng)前master分支推送到遠(yuǎn)程庫(kù)
  git clone /path/to/repository創(chuàng)建一個(gè)本地倉(cāng)庫(kù)的克隆版本
git clone username@host:/path/to/repository遠(yuǎn)端服務(wù)器上的倉(cāng)庫(kù)
  git checkout –b dev 創(chuàng)建dev分支 并切換到dev分支上
  git branch 查看當(dāng)前所有的分支
  git checkout master 切換回master分支
  git merge dev 在當(dāng)前的分支上合并dev分支
  git branch –d dev 刪除dev分支
  git branch name 創(chuàng)建分支
  git stash 把當(dāng)前的工作隱藏起來(lái) 等以后恢復(fù)現(xiàn)場(chǎng)后繼續(xù)工作
  git stash list 查看所有被隱藏的文件列表
  git stash apply 恢復(fù)被隱藏的文件,但是內(nèi)容不刪除
  git stash drop 刪除文件
  git stash pop 恢復(fù)文件的同時(shí) 也刪除文件
  git remote 查看遠(yuǎn)程庫(kù)的信息
  git remote –v 查看遠(yuǎn)程庫(kù)的詳細(xì)信息
git remote add origin <server>如果你還沒(méi)有克隆現(xiàn)有倉(cāng)庫(kù),并欲將你的倉(cāng)庫(kù)連接到某個(gè)遠(yuǎn)程服務(wù)器

Git特點(diǎn):
1.分布式:Git系統(tǒng)是一個(gè)分布式的系統(tǒng),是用來(lái)保存工程源代碼歷史狀態(tài)的命令行工具。
2.保存點(diǎn):Git的保存點(diǎn)可以追蹤源碼中的文件, 并能得到某一個(gè)時(shí)間點(diǎn)上的整個(gè)工程項(xiàng)目的狀態(tài);可以在該保存點(diǎn)將多人提交的源碼合并, 也可以回退到某一個(gè)保存點(diǎn)上。
3.Git離線操作性:Git可以離線進(jìn)行代碼提交,因此它稱得上是完全的分布式處理,Git所有的操作不需要在線進(jìn)行;這意味著Git的速度要比SVN等工具快得多,因?yàn)镾VN等工具需要在線時(shí)才能操作,如果網(wǎng)絡(luò)環(huán)境不好, 提交代碼會(huì)變得非常緩慢。
4.Git基于快照:SVN等老式版本控制工具是將提交點(diǎn)保存成補(bǔ)丁文件,Git提交是將提交點(diǎn)指向提交時(shí)的項(xiàng)目快照,提交的東西包含一些元數(shù)據(jù)(作者,日期,GPG等)。
5.Git的分支和合并:分支模型是Git最顯著的特點(diǎn),因?yàn)檫@改變了開發(fā)者的開發(fā)模式,SVN等版本控制工具將每個(gè)分支都要放在不同的目錄中,Git可以在同一個(gè)目錄中切換不同的分支。
6.分支即時(shí)性:創(chuàng)建和切換分支幾乎是同時(shí)進(jìn)行的,用戶可以上傳一部分分支,另外一部分分支可以隱藏在本地,不必將所有的分支都上傳到GitHub中去。
7.分支靈活性:用戶可以隨時(shí)創(chuàng)建、合并、刪除分支,多人實(shí)現(xiàn)不同的功能,可以創(chuàng)建多個(gè)分支進(jìn)行開發(fā),之后進(jìn)行分支合并,這種方式使開發(fā)變得快速、簡(jiǎn)單、安全。
工作流
你的本地倉(cāng)庫(kù)由 git 維護(hù)的三棵“樹”組成。第一個(gè)是你的 工作目錄,它持有實(shí)際文件;第二個(gè)是 緩存區(qū)(Index),它像個(gè)緩存區(qū)域,臨時(shí)保存你的改動(dòng);最后是 HEAD,指向你最近一次提交后的結(jié)果。


image.png

SVN與Git的主要區(qū)別:
SVN是集中式版本控制系統(tǒng),版本庫(kù)是集中放在中央服務(wù)器的,而干活的時(shí)候,用的都是自己的電腦,所以首先要從中央服務(wù)器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服務(wù)器。集中式版本控制系統(tǒng)是必須聯(lián)網(wǎng)才能工作,如果在局域網(wǎng)還可以,帶寬夠大,速度夠快,如果在互聯(lián)網(wǎng)下,如果網(wǎng)速慢的話,就納悶了。
  Git是分布式版本控制系統(tǒng),那么它就沒(méi)有中央服務(wù)器的,每個(gè)人的電腦就是一個(gè)完整的版本庫(kù),這樣,工作的時(shí)候就不需要聯(lián)網(wǎng)了,因?yàn)榘姹径际窃谧约旱碾娔X上。既然每個(gè)人的電腦都有一個(gè)完整的版本庫(kù),那多個(gè)人如何協(xié)作呢?比如說(shuō)自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時(shí),你們兩之間只需把各自的修改推送給對(duì)方,就可以互相看到對(duì)方的修改了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容