代碼協(xié)同管理工具-git

代碼管理工具作用

  • 防止代碼丟失,做備份
  • 代碼版本的管理,可以進(jìn)行多個(gè)節(jié)點(diǎn)的備份,在多個(gè)版本之間跳躍
  • 可以方便的將代碼在多人之間進(jìn)行共享傳輸
  • 多人開(kāi)發(fā)時(shí)有各種模式可以方便代碼管理

git

git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),可用于高效的管理大小項(xiàng)目。

分布式和集中式
  • 分布式:每個(gè)節(jié)點(diǎn)都保存完成的代碼,沒(méi)有明確的中央服務(wù)器,節(jié)點(diǎn)之間項(xiàng)目推送下載代碼完成代碼共享
  • 集中式:代碼集中管理,每次完成的代碼上傳到中央管理器,然后再統(tǒng)一從中央管理器下載代碼使用
git特點(diǎn)
  • git可以管理各種文件,特別是代碼項(xiàng)目,多在*nix系統(tǒng)中使用
  • git是分布式管理,不同于集中式,這是git和svn的核心區(qū)別
  • git可以更好的支持分支,方便多人協(xié)同工作
  • git分布式代碼更安全,有全球唯一的commit版本號(hào)
  • git是開(kāi)源的系統(tǒng)
  • git可以脫網(wǎng)工作,且數(shù)據(jù)傳輸速度較快
git安裝
git配置命令
配置級(jí)別
  • 系統(tǒng)中所有的用戶都可使用該配置
    命令:git config --system
    配置文件:/etc/gitconfig
  • 當(dāng)前用戶可使用該配置
    命令:git config --global
    配置文件:~/.gitconfig
  • 當(dāng)前項(xiàng)目可使用該配置
    命令:git config
    配置文件:project/.git/config
配置內(nèi)容
  • 配置用戶名
    配置用戶名為:Jason
    sudo git config --system user.name Jason
  • 配置用戶郵箱
    配置郵箱為:123@yeah.net
    git config --global user.email 123@yeah.net
  • 配置編譯器
    配置編譯器為:sublime
    git config core.editor sublime
  • 查看配置信息
    git config --list

git命令

常用基本命令
  • 初始化倉(cāng)庫(kù)
    git init
    在某個(gè)目錄下初始化倉(cāng)庫(kù)后會(huì)自動(dòng)產(chǎn)生.git目錄。該目錄下工作的所有文檔即可以使用git進(jìn)行管理。
  • 查看分支狀態(tài)
    git status
    默認(rèn)工作分支為master,可通過(guò)創(chuàng)建新的分支切換
  • 文件提交
    git add [file]
    • 將文件提交到暫存區(qū)
    • 提交內(nèi)容可以是一個(gè)文件,多個(gè)文件用個(gè)空格分開(kāi)
    • 如果是 * 表示所有文件,也可以是目錄
  • 刪除暫存區(qū)某個(gè)文件提交記錄
    git rm --cached file
  • 文件同步到本地倉(cāng)庫(kù)
    git commit -m "some message"
    • 同步時(shí)需要附加一些同步信息在-m后添加
    • 所有對(duì)工作區(qū)的修改如果想同步到本地倉(cāng)庫(kù),都需要add--->commit
  • 查看commit日志
    • git log
    • git log --pretty=oneline
一些工作區(qū)命令
  • 查看本地文件和工作區(qū)差異
    git diff file
  • 從本地倉(cāng)庫(kù)恢復(fù)文件
    git checkout file
  • 丟棄工作區(qū)修改
    git checkout -- file
本地倉(cāng)庫(kù)文件的移動(dòng)和刪除

用法和mv,rm命令相同。操作后直接commit即可工作區(qū)和本地倉(cāng)庫(kù)同步

  • 移動(dòng)文件
    git mv file dir
  • 刪除文件
    git mv file
版本控制命令
  • 回到上一個(gè)版本
    git reset --hard HEAD^
    HEAD后的^數(shù)量決定了回到上幾個(gè)版本
  • 回到指定版本
    git reset --hard commit_id
    使用commit前7位即可,回到指定的版本
  • 查看所有歷史版本號(hào)
    git reflog
    會(huì)有所有的操作記錄,最新的操作始終在最上邊

標(biāo)簽管理

在當(dāng)前工作位置添加快照,保存工作狀態(tài),一般用于版本的迭代。

創(chuàng)建新的標(biāo)簽
  • git tag v1.0 創(chuàng)建新的標(biāo)簽
  • git tag v1.0 -m "message" 添加標(biāo)簽信息
  • git tag v0.9 [commit_id] 指定某個(gè)commit_id打標(biāo)簽
    默認(rèn)在最新的commit_id處打標(biāo)簽
刪除標(biāo)簽

git tag -d v1.0

查看標(biāo)簽
  • git tag 列出當(dāng)前標(biāo)簽
  • git show v1.0 顯示標(biāo)簽具體信息
去往某個(gè)標(biāo)簽版本

git reset --hard v0.9

臨時(shí)工作區(qū)操作

  • 創(chuàng)建保存臨時(shí)工作區(qū)
    git stash
  • 查看保存的工作區(qū)
    git stash list
  • 應(yīng)用哪個(gè)工作區(qū)
    git stash apply stash@{1}
  • 應(yīng)用上一個(gè)工作區(qū)并且刪除
    git stash pop
  • 刪除工作區(qū)
    git stash drop stash@{0} 刪除某一個(gè)
    git stash clear 刪除所有

分支操作

什么是分支

分支即每個(gè)人獲取原有代碼,在此基礎(chǔ)上創(chuàng)建自己的工作環(huán)境,單獨(dú)開(kāi)發(fā),不會(huì)影響其他分支的操作。開(kāi)發(fā)完成后再統(tǒng)一合并到主線分支中。

分支的好處

安全,不影響其他人工作,自己控制進(jìn)度

分支操作
  • 查看當(dāng)前分支
    git branch
    前面有*號(hào)的分支表示當(dāng)前正在工作的分支
  • 創(chuàng)建分支
    git branch [branch_name]
  • 切換工作分支
    git checkout [branch]
  • 創(chuàng)建并切換到新的分支
    git checkout -b [branch_name]
  • 分支合并
    git merge [branch] 將某個(gè)分支合并到當(dāng)前分支
    • 合并過(guò)程中如果沒(méi)有沖突則直接合并后當(dāng)前分支即為干凈的狀態(tài)
    • 如果產(chǎn)生沖突則需要人為選擇然后在進(jìn)行add,commit等操作
    • 在創(chuàng)建分支前盡量保證當(dāng)前分支是干凈點(diǎn),以減少?zèng)_突的發(fā)生
  • 刪除分支
    git branch -d [branch_name]
  • 強(qiáng)制刪除沒(méi)有合并的分支
    git branch -D [branch_name]

遠(yuǎn)程倉(cāng)庫(kù)

遠(yuǎn)程主機(jī)上的倉(cāng)庫(kù)。實(shí)際上git是分布式的,每一臺(tái)主機(jī)的git結(jié)構(gòu)都相似,只是把其他主機(jī)的git倉(cāng)庫(kù)叫做遠(yuǎn)程而已。

創(chuàng)建共享倉(cāng)庫(kù)
  • 創(chuàng)建文件夾
    mkdir gitrepo
  • 設(shè)置文件夾屬主
    chown imings:imings gitrepo
  • 將該文件夾設(shè)置為可共享的git倉(cāng)庫(kù)
    cd gitrepo
    git init --bare fly.git
  • 設(shè)置本地倉(cāng)庫(kù)屬主
    chown -R imings:imings fly.git
添加遠(yuǎn)程倉(cāng)庫(kù)

git remote add origin imings@127.0.0.1:/home/imings/gitrepo/fly.git

  • 默認(rèn)使用SSH作為傳輸手段
  • 必須在本地的某個(gè)git倉(cāng)庫(kù)下執(zhí)行才能使本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)
刪除遠(yuǎn)程主機(jī)

git remote rm [origin]

將本地分支推送到遠(yuǎn)程

git push -u origin master
在第一次向遠(yuǎn)程倉(cāng)庫(kù)推送時(shí)需要加 -u選項(xiàng),以后就不需要了

從遠(yuǎn)程倉(cāng)庫(kù)獲取項(xiàng)目

git clone imings@127.0.0.1:/home/imings/gitrepo/fly.git

從遠(yuǎn)程倉(cāng)庫(kù)拉取分支或代碼
  • 直接拉取遠(yuǎn)程分支和當(dāng)前工作分支合并
    git pull origin imings*
  • 拉取遠(yuǎn)程分支到本地,不合并
    git pull origin imings(遠(yuǎn)程分支名) : imings(本地分支名)
代碼退出和拉取
  • 將本地代碼推送到連接的遠(yuǎn)程倉(cāng)庫(kù)
    git push
    git push --force origin 當(dāng)本地版本比遠(yuǎn)程版本舊是用本地舊版本覆蓋遠(yuǎn)程
  • 從遠(yuǎn)程倉(cāng)庫(kù)更新代碼
    git pull
    git fetch 如果有新的分支拉取到本地不會(huì)和本地分支合并

github

  • github是一個(gè)開(kāi)源項(xiàng)目社區(qū)網(wǎng)站,擁有全球最多的開(kāi)源項(xiàng)目。開(kāi)發(fā)者可以注冊(cè)這個(gè)網(wǎng)站建立自己的github倉(cāng)庫(kù)。然后就可以在本地通過(guò)git像操作遠(yuǎn)程倉(cāng)庫(kù)一樣操作github倉(cāng)庫(kù)。
  • git是github唯一指定的代碼管理工具。
  • 網(wǎng)址:https://github.com/
添加ssh秘鑰
  • 在本地主機(jī)生成ssh密鑰對(duì)
    ssh-keygen
  • 默認(rèn)密鑰對(duì)存放在 ~/.ssh/
  • 生成過(guò)程會(huì)提示設(shè)置密碼,如果直接回車則表示不設(shè)置密碼
  • 進(jìn)入 ~/.ssh 目錄復(fù)制 id_rsa.pub 公鑰內(nèi)容
  • 登錄github賬號(hào),找到settings
  • settings左側(cè)SSH and GPG keys --> new ssh key填寫title,將復(fù)制內(nèi)容加入key文本框點(diǎn)擊add...
操作github倉(cāng)庫(kù)
  • git remote 連接遠(yuǎn)程github倉(cāng)庫(kù),如果需要輸入密碼輸入github密碼即可
  • 使用git push等操作遠(yuǎn)程倉(cāng)庫(kù)的方法操作即可
最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Git常用語(yǔ)法 [TOC] Git簡(jiǎn)介 描述 ? Git(讀音為/g?t/。)是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,953評(píng)論 0 13
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,852評(píng)論 9 163
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,839評(píng)論 4 54
  • 簡(jiǎn)介 Git是一個(gè)開(kāi)源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。 Git 與常用的版本控制工具 ...
    閩越布衣閱讀 2,875評(píng)論 0 18
  • git 使用筆記 git原理: 文件(blob)對(duì)象,樹(shù)(tree)對(duì)象,提交(commit)對(duì)象 tree對(duì)象 ...
    神刀閱讀 3,852評(píng)論 0 10

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