日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django工具:Git简介与基本操作

發(fā)布時間:2024/7/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django工具:Git简介与基本操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.Git簡介:

1.Git是目前世界上最先進的分布式版本控制系統(tǒng)

網(wǎng)址:http://github.com

2.總結git的兩大特點:

  • 版本控制:可以解決多人同時開發(fā)的代碼問題,也可以解決找回歷史代碼的問題
  • 分布式:Git是分布式版本控制系統(tǒng),同一個Git倉庫,可以分布到不同的機器上。

?

2.經(jīng)理創(chuàng)建

2.1安裝配置:

?

  • 安裝

sudo apt-getinstall git

  • 安裝成功后,運行如下命令

git

?

配置

  • 在ubuntu的命令vi .gitconfig行中,修改某臺機器的git配置
  • 修改為注冊github時的郵箱,填寫用戶名,要求組員的用戶名不能重復

?

  • git四部分的交互方式如下圖


?

?

2.2創(chuàng)建倉庫

  • 注冊github賬戶,登錄后,點擊"start a project"
  • 在新頁面中,輸入項目的名稱,勾選'readme.md',點擊'create repository'
  • 添加成功后,轉到文件列表頁面,點擊'create new file'創(chuàng)建新文件
  • 填寫文件名稱為'.gitignore',代碼如下,表示項目中的pyc文件不需要被管理,因為這些文件代碼是根據(jù)py生成的
  • *.pyc
    .idea/
    migrations/
  • 點擊'preview'查看預覽,點擊'create new file'完成創(chuàng)建

?

2.3添加ssh賬戶

  • 如果某臺機器需要與github上的倉庫交互,那么就要把這臺機器的ssh公鑰添加到這個github賬戶上
  • 點擊賬戶頭像后的下拉三角,選擇'settings'
  • 點擊'SSH and GPG keys',添加ssh公鑰

?

生成git密鑰

  • 刪除~/.ssh目錄,這里存儲了舊的密鑰

rm -r .ssh

?

運行如下命令生成密鑰

ssh-keygen -trsa -C "Github賬號,可以是用戶名,也可以是郵箱地址"

?

  • 查看公鑰內容,復制此內容

cat id_rsa.pub

?

  • 回到瀏覽器中,填寫標題,粘貼公鑰

?

2.4克隆項目

  • 在瀏覽器中點擊進入github首頁,再進入項目倉庫的頁面
  • 復制git地址
  • 在命令行中復制倉庫中的內容

git clone git地址

?

錯誤處理

  • 提示錯誤信息如下:

sign_and_send_pubkey: signingfailed: agent refused operation

  • 錯誤原因:在ssh賬戶中沒有加入新生成的密鑰
  • 解決:將密碼加入ssh賬戶
  • 逐條運行如下命令

eval "$(ssh-agent-s)"
ssh-add

?

2.5創(chuàng)建項目分支

  • 每個員工開發(fā)期的代碼互不干擾,并行開發(fā),則每人使用一條分支
  • 項目開發(fā)中公用分支包括master、dev
  • 分支master用于發(fā)布,默認分支,當需要發(fā)布時將dev分支合并
  • 分支dev開發(fā)階段性的代碼合并,每個階段的工作完成后需要進行一次,控制項目的進度
  • 成員分支用于每個項目成員的代碼開發(fā),實現(xiàn)不交叉

?

  • 創(chuàng)建分支:git branch 分支名稱
  • 切換分支:git checkout 分支名稱
  • 將分支推送到服務器:git push origin 分支名稱
  • 將本地分支跟蹤服務器分支

git branch--set-upstream-to=origin/分支名稱 分支名稱

?

  • 創(chuàng)建并切換分支:git checkout -b 分支名稱
  • 查看所有分支,當前分支前標記為星*:git branch
  • 刪除分支:git branch -d 分支名稱
    沒有例子,沒錯,就是沒有例子,如果你刪除了,我也找不回來喲

?

2.6搭建項目框架

  • 當前項目分支一共有3個,分別為master、dev、itcast,當前在itcast分支上工作
  • 在克隆的目錄下創(chuàng)建項目,使用django框架
  • 將文件代碼添加到暫存區(qū):git add dailyfresh/
    將暫存區(qū)提交到倉儲區(qū):git commit -m '搭建框架'

?

?

2.7上傳分支

  • 當從遠程倉庫克隆時,實際上Git自動把本地的master分支和遠程的master分支對應起來
  • 遠程倉庫的默認名稱是origin
  • 推送分支,就是把該分支上的所有本地提交推送到遠程庫,推送時要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上

git pushorigin 分支名稱

?

  • 當前文件在python分支上,所以推送python分支

gitpush origin python

?

  • python分支合并到dev分支

gitcheckout dev
git merge
python

?

  • 推送dev分支:git push origin dev
  • 將dev分支合并到master分支

git checkoutmaster
git merge dev

?

  • 推送master分支:git push origin master

?

3.員工—開發(fā)

?

3.1添加ssh賬戶

生成git密鑰

  • 刪除~/.ssh目錄,這里存儲了舊的密鑰

rm -r .ssh

?

運行如下命令生成密鑰

ssh-keygen -trsa -C "Github賬號,可以是用戶名,也可以是郵箱地址"

?

  • 查看公鑰內容,復制此內容

cat id_rsa.pub

?

  • 回到瀏覽器中,填寫標題,粘貼公鑰

?

3.2本地克隆

  • 根據(jù)項目經(jīng)理提供的地址,如“git@github.com:bossliu2016/django1.git”,從github上將項目克隆到本地,默認對應的是master分支

git clone 項目地址

?

3.3同步分支

  • 以自己的姓名創(chuàng)建分支,如果此分支已經(jīng)存在可以添加數(shù)字后綴,具體要與項目經(jīng)理商量

git checkout -bzhjia

  • 將本地分支推送到服務器

git push originzhjia

  • 將本地分支跟蹤服務器分支

git branch--set-upstream-to=origin/分支名稱 分支名稱

?

  • 將github上的dev分支同步到本地,因為開發(fā)過程中,所有組員都向這個分支上提交階段性代碼,并從這個分支獲取最新代碼

git checkout -bdev origin/dev

?

3.4開發(fā)管理

  • 上面的操作,只有我們在加入項目的第一天需要進行,只操作一次就夠了
  • 接下來的操作,是我們每天開發(fā)中都要進行的操作,這是必須做到熟練操作的命令
  • 當前用戶以zhjia分支進行開發(fā)

git checkout zhjia

?

  • 本地倉庫分為三部分:工作區(qū),暫存區(qū),倉庫區(qū),其中暫存區(qū)、倉庫區(qū)是版本庫部分

?

?

3.5工作區(qū)與暫存區(qū)

?

添加

git add 文件1 文件2 ...
git add 目錄

?

撤銷? git checkout-- 文件名

?

3.6暫存區(qū)與倉庫區(qū)

  • 倉庫區(qū)表示個人開發(fā)的一個小階段的完成,倉庫區(qū)中記錄的各版本是可以查看并回退的,但是在暫存區(qū)的版本一旦提交就再也沒有了
  • 查看暫存區(qū)未提交的記錄:git status
  • 將暫存區(qū)的記錄提交到倉庫區(qū)

git commit -m'本次提交的說明信息'

?

3.7本地與服務器

?

獲取

  • 建議:在每天開始編寫代碼前,先與服務器同步一次;或者在公用分支如dev上開發(fā)時,建議先同步后開發(fā)
  • 1.切換到dev分支:git checkout dev
  • 2.獲取代碼,如果dev分支上有更新的記錄則會同步到本地:git pull
  • 3.切換回自己的分支繼續(xù)開發(fā):git checkout zhujiao

推送

  • 建議:在每天下班前將當天開發(fā)推送到服務器,這樣可以在服務器中存儲一個備份,即使本機出問題,在服務器上還能存在代碼備份
  • git push origin zhjia

?

合并分支

  • 一個功能模塊開發(fā)完了,合并到dev分支
  • 1.切換到dev分支:git checkout dev
  • 2.獲取代碼,如果dev分支上有更新的記錄則會同步到本地:git pull
  • 3.合并:git merge zhjia
  • 4.添加、提交并推送:git push origin dev
  • 5.切換回工作分支:git checkout zhujiao
  • 6.在最新代碼上繼續(xù)開發(fā),所以將dev分支合并到zhujiao分支

git merge dev

?

解決沖突

  • 建議:在更改公用文件如dailyfresh/urls.py時需要操作dev分支,因為大家都可以操作dev分支,所以在合并時可能出現(xiàn)沖突
  • 沖突的示例如下,修改dailyfresh/urls.py文件

?

項目經(jīng)理的操作

  • 1.項目經(jīng)理負責前臺的開發(fā),需要修改dailyfresh/urls.py文件

git checkout dev

?

  • 2.在dailyfresh/urls.py文件中添加一條url
  • 3.添加并提交

git adddailyfresh/urls.py
git commit -m '配置前臺url'

?

  • 4.同步到服務器

git push origindev

?

員工的操作

  • 1.員工負責用戶模塊的開發(fā),需要修改dailyfresh/urls.py文件

git checkout dev

  • 2.在dailyfresh/urls.py文件中添加一條url
  • 3.添加并提交

git adddailyfresh/urls.py
git commit -m '配置用戶模塊url'

  • 4.向服務器推送:git push origin dev
  • 5.推送時發(fā)現(xiàn)出錯誤了,根據(jù)提示,需要先獲取服務器的變更

git pull

  • 發(fā)現(xiàn)有沖突,而且自動合并沖突失敗,需要手動合并沖突,指向dailyfresh/urls.py文件
  • 6.沖突解決完成,再次添加、提交、推送

git add dailyfresh/urls.py
git commit -m '配置用戶模塊url-解決沖突后'
git push origin dev

?

3.8歷史

  • 查看倉庫區(qū)的歷史操作

git reflog

?

  • 對比工作區(qū)和倉庫區(qū)中某版本某文件的不同

git diff HEAD-- 文件名

?

  • 將上面的代碼添加提交

git adddf_user/models.py
git commit -m '修改模型類的str方法為name屬性'

?

回退

  • 回退歷史版本到暫存區(qū)
  • 將df_user/models.py文件的更改完成添加、提交

git adddf_user/models.py
git commit -m '修改模型類'

  • 查看當前的暫存區(qū)狀態(tài):git status
  • 重置版本:git reset 版本號
  • 再次查看當前的暫存區(qū)狀態(tài):git status
  • 可以再將暫存區(qū)的內容恢復到工作區(qū)

git checkout --df_user/models.py

?

3.9刪除

  • 在ide中將文件刪除
  • 從工作區(qū)到暫存區(qū)提交:git rm 文件名
  • 從暫存區(qū)到倉庫區(qū)提交:git commit -m '說明信息'

1.創(chuàng)建df_user/a.py的變更添加到暫存區(qū),再提交到倉庫區(qū)

git adddf_user/a.py
git commit -m '創(chuàng)建文件a'

  • 2.在ide中將df_user/a.py文件刪除,然后在暫存區(qū)刪除

git rmdf_user/a.py

  • 3.提交暫存區(qū)的記錄到倉庫區(qū)

git commit -m'刪除文件a'

?

3.10Debug分支

  • 在項目的正常開發(fā)過程中,之前發(fā)布過的版本可能很會出bug,這時就需要停下來現(xiàn)在的開發(fā)任務,先去修改bug,完成后再回來繼續(xù)開發(fā)任務
  • git中stash提供了保存現(xiàn)場的功能,可以把當前工作區(qū)、暫存區(qū)中的內容不需要提交而保存下來,轉而去做bug修復,完成后再恢復現(xiàn)場,繼續(xù)開發(fā)工作
  • 將語言和時區(qū)改為

LANGUAGE_CODE ='zh-Hans'
TIME_ZONE = 'Shanghai/Asia'

?

  • 1.查看當前狀態(tài):git status
  • 2.保存現(xiàn)場:git stash
  • 再查看當前狀態(tài),發(fā)現(xiàn)是干凈的:git status
  • 3.切換到master分支:git checkout master
  • 4.新建臨時分支用于修復bug,用完后會刪除此分支

git checkout -bbug001

5.修改dailyfresh/settings.py文件的語言和時區(qū)

  • 添加:將工作區(qū)中的更改添加到暫存區(qū)

git adddailyfresh/settings.py

  • 提交:將暫存區(qū)的內容提交到倉庫區(qū)

git commit -m'修復時區(qū)語言'

  • 6.切換回master分支:git checkout master
  • 7.將bug001分支合并到master分支
  • 因為臨時分支用完后會被刪除,無法通過分支查詢歷史記錄,所以使用臨時分支時需要使用no-ff的方式,同時寫上-m備注信息

git merge--no-ff -m "修復bug-語言時區(qū)" bug001

  • 推送到服務器:git push
  • 8.刪除臨時分支bug001:git branch -d bug001
  • 9.切換回工作分支zhjia:git checkout zhjia
  • 查看現(xiàn)場列表:git stash list
  • 恢復現(xiàn)場:git stash pop
  • 恢復現(xiàn)場后查看工作狀態(tài):git status

?

?

4.0經(jīng)理-發(fā)布

  • 項目開發(fā)完一個版本后,需要進行項目的合并與發(fā)布
  • 項目合并與發(fā)布,需要項目經(jīng)理和組員一起來完成,每個人將開發(fā)的分支逐個合并到dev分支,如果有沖突則解決沖突,在dev上的代碼經(jīng)過測試沒有問題后,則由經(jīng)理合并到master分支,完成發(fā)布
  • 實現(xiàn)發(fā)布主要遵守如下步驟:
  • 每個人逐個合并分支到dev
  • 經(jīng)理合并dev到master并發(fā)布
  • 每個人獲取最新的dev分支、master分支

?

4.1逐個合并

  • 1.切換到dev分支:git checkout dev
  • 2.獲取最新記錄代碼:git pull
  • 3.合并,將自己編寫的代碼加入進來,如果有沖突則與上一個組員商量解決沖突
  • 如果沒有沖突則可以跳過4、5步

git merge 分支

  • 4.添加
  • 注意:在項目的根級目錄下,即README.md所在的目錄下

git add ./

  • 5.提交:git commit -m 'zhjia發(fā)布v1.0'
  • 6.推送:git push origin dev

?

4.2經(jīng)理合并

  • 所有成員都完成合并后,接下來是項目經(jīng)理要執(zhí)行的操作
  • 1.切換到dev分支:git checkout dev
  • 2.獲取最新git pull
  • 3.切換到master分支:git checkout master
  • 4.合并dev分支到master分支
  • 如果有沖突,則找相應的組同解決沖突
  • 如果沒有沖突則可以跳過5、6步

git merge dev

  • 5.添加
  • 注意:在項目的根級目錄下,即README.md所在的目錄下

git add ./

  • 6.提交:git commit -m '發(fā)布v1.0'
  • 7.打標簽
  • 標簽就是為了給一堆數(shù)字的版本號,起一個容易記住的名字,一般用于master分支:git tag v1.0
  • 8.推送:git push

?

4.3逐個獲取

  • 現(xiàn)在最新的代碼已經(jīng)有了,接下來在這個版本代碼基礎上繼續(xù)開發(fā),每個人都要獲取最新的代碼
  • 1.切換到master分支:git checkout master
  • 2.獲取:git pull
  • 3.切換到dev分支:git checkout dev
  • 4.將master分支合并到dev分支:git merge master
  • 5.切換到自己工作的分支如zhjia分支:git checkout zhjia
  • 6.將dev分支合并到工作分支如zhjia分支:git merge dev

總結

以上是生活随笔為你收集整理的Django工具:Git简介与基本操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。