項目基礎及工具(git)

GIT簡介

  1. 什麼是git
    git是一個開源的分佈式版本控制系統,用於高效的管理各種大小項目和文件。
  2. 代碼管理工具的用途
  • 防止代碼丟失,做備份
  • 項目的版本管理和控制,可以通過設置節點進行跳轉
  • 建立各自的開發環境分支,互不影響,方便合併
  • 在多終端開發時,方便代碼的相互傳輸
  1. git的特點
  • git是開源的,多在Linux/Unix下使用,可以管理各種文件
  • git是分佈式的項目管理工具(svn是集中式的)
  • git數據管理更多樣化,分享速度快,數據安全
  • git 擁有更好的分支支持,方便多人協調
  1. git安裝
    sudo apt-get install git

GIT使用

在這裏插入圖片描述
在這裏插入圖片描述

基本概念

  • 工作區:項目所在操作目錄,實際操作項目的區域
  • 暫存區: 用於記錄工作區的工作(修改)內容
  • 倉庫區: 用於備份工作區的內容
  • 遠程倉庫: 遠程主機上的GIT倉庫

注意: 在本地倉庫中,git總是希望工作區的內容與倉庫區保持一致,而且只有倉庫區的內容才能和其他遠程倉庫交互。

初始配置

  • 配置命令: git config
    • 配置所有用戶: git config --system [選項]
      • 配置文件位置: /etc/gitconfig
    • 配置當前用戶: git config --global [選項]
      • 配置文件位置: ~/.gitconfig
    • 配置當前項目: git config [選項]
      • 配置文件位置: project/.git/config
  1. 配置用戶名
    e.g. 將用戶名設置爲Tedu
    sudo git config --system user.name Tedu
    cat /etc/gitconfig
  2. 配置用戶郵箱
    e.g. 將郵箱設置爲[email protected]
    git config --global user.email [email protected]
    cat ~/.gitconfig
  3. 配置編譯器
    e.g. 配置編譯器爲pycharm
    git config core.editor pycharm
  4. 查看配置信息
    git config --list

基本命令

  1. 初始化倉庫
    git init
    意義:將某個項目目錄變爲git操作目錄,生成git本地倉庫。即該項目目錄可以使用git管理,如果不想要git管理了,直接將.git/文件刪除即可,初始化的目錄可以爲空,可以不爲空

  2. 查看本地倉庫狀態
    git status
    說明: 初始化倉庫後默認工作在master分支(初始時被稱爲在主分支上),當工作區與倉庫區不一致時會有提示。

  3. 將工作內容記錄到暫存區
    git add [files…] (多個文件用空格隔開)

e.g. 將 a ,b 記錄到暫存區
git add a b

e.g. 將所有文件(不包含隱藏文件,隱藏文件指出文件名提交)記錄到暫存區
git add *

  1. 取消文件暫存記錄
    git rm --cached [file]

  2. 將文件同步到本地倉庫
    git commit [file] -m [message](file爲同步文件名,寫的話,只同步指定的文件,不寫的話,同步所有文件,message爲提交所填寫的信息)
    說明: -m表示添加一些同步信息,表達同步內容

e.g. 將暫存區所有記錄同步到倉庫區
git commit -m ‘add files’

  1. 查看commit 日誌記錄
    git log
    git log --pretty=oneline

  2. 比較工作區文件和倉庫文件差異
    git diff [file]

  3. 放棄工作區文件修改(多用於文件內容修改後恢復)
    git checkout – [file]

  4. 從倉庫區恢復文件(多用於文件刪除後恢復)
    git checkout [file]

  5. 移動或者刪除文件
    git mv [file] [path]
    git rm [files]
    注意: 這兩個操作會修改工作區內容,同時將操作記錄提交到暫存區。

@擴展延伸(忽略規則)

在Git項目中可以通過在項目的某個文件夾下定義.gitignore文件的方式,規定相應的忽略規則,用來管理當前文件夾下的文件的Git提交行爲。.gitignore 文件是可以提交到公有倉庫中,這就爲該項目下的所有開發者都共享一套定義好的忽略規則。在.gitingore 文件中,遵循相應的語法,在每一行指定一個忽略規則。
在這裏插入圖片描述

版本控制

  1. 退回到上一個commit節點
    git reset --hard HEAD^
    注意 : 一個^表示回退1個版本,依次類推。當版本回退之後工作區會自動和當前commit版本保持一致

  2. 退回到指定的commit_id節點
    git reset --hard [commit_id(前7位即可)]

  3. 查看所有操作記錄
    git reflog
    注意:最上面的爲最新記錄,可以利用commit_id去往任何操作位置

  4. 創建標籤
    標籤: 在項目的重要commit位置添加快照,保存當時的工作狀態,一般用於版本的迭代。

    git tag [tag_name] [commit_id] -m [message]
    說明: commit_id可以不寫則默認標籤表示最新的commit_id位置,message也可以不寫,但是最好添加。

    e.g. 在最新的commit處添加標籤v1.0
    git tag v1.0 -m ‘版本1’

  5. 查看標籤
    git tag (查看標籤列表)
    git show [tag_name] (查看標籤詳細信息)

  6. 去往某個標籤節點
    git reset --hard [tag]

  7. 刪除標籤
    git tag -d [tag]

保存工作區

  1. 保存工作區內容
    git stash save [message]
    說明: 將工作區未提交的修改保存,讓工作區回到修改前的狀態

  2. 查看工作區列表
    git stash list
    說明: 最新保存的工作區在最上面

  3. 應用某個工作區
    git stash apply [stash@{n}]

  4. 刪除工作區
    git stash drop [stash@{n}] 刪除某一個工作區
    git stash clear 刪除所有保存的工作區

分支管理

定義: 分支即每個人在原有代碼(分支)的基礎上建立自己的工作環境,單獨開發,互不干擾。完成開發工作後再進行分支統一合併。

  1. 查看分支情況
    git branch
    branch後可以加“-r”,表示查看遠程分支,“-a”表示查看所有分支,默認不加,表示查看本地分支

    說明: 輸出結果前面帶 * 的分支表示當前工作分支

  2. 創建分支
    git branch [branch_name]

    說明: 基於a分支創建b分支,此時b分支會擁有a分支全部內容。在創建b分支時最好保持a分支"乾淨"狀態。

  3. 切換工作分支
    git checkout [branch]

    說明: 2,3可以同時操作,即創建並切換分支,如下:git checkout -b [branch_name]

  4. 合併分支(先切換到主分支,然後再合併分支)
    git merge [branch]

  • 衝突問題是合併分支過程中最爲棘手的問題:
    • 當分支合併時,原分支和以前發生了變化就會產生衝突
    • 當合並分支時添加新的模塊(文件),這種衝突可以自動解決,只需自己決定commit操作即可。
    • 當合並分支時兩個分支修改了同一個文件,則需要手動解決衝突。
  1. 刪除分支
    git branch -d [branch] 刪除分支
    git branch -D [branch] 刪除沒有被合併的分支

在這裏插入圖片描述

遠程倉庫

  1. 什麼是遠程倉庫
    遠程主機上的git倉庫。實際上git是分佈式結構,每臺主機的git倉庫結構類似,只是把別人主機上的git倉庫稱爲遠程倉庫。

  2. 共享倉庫
    在git倉庫中bare屬性爲True的共享倉庫可以很好的和遠程倉庫進行交互
    創建步驟:

  • 選擇共享倉庫目錄,將該目錄屬主設置爲當前用戶
    mkdir gitrepo
    chown xiecheng:xiecheng gitrepo

  • 將該目錄初始化爲git共享目錄,下例中ai爲自己取的項目名稱,.git爲通用結尾後綴
    cd gitrepo
    git init --bare ai.git

  • 將git配置目錄與項目目錄設置爲相同的屬主
    chown -R xiecheng:xiecheng ai.git

遠程倉庫操作命令

所有操作在本地git倉庫下進行

  1. 添加遠程倉庫
    git remote add origin [email protected]:/home/xiecheng/useGit/gitrepo/ai.git

  2. 刪除遠程主機
    git remote rm [origin]

  3. 查看連接的主機
    git remote
    注意: 一個git項目連接的遠程主機名不會重複

  4. 將本地分支推送給遠程倉庫
    將master分支推送給origin主機遠程倉庫,第一次推送分支使用-u表示與遠程對應分支建立自動關聯git push -u origin master,第二次推送直接 git push就可以。

  5. 刪除遠程分支
    git branch -a 查看所有分支(包括與遠程倉庫建立的遠程分支)
    git push origin [:branch] 刪除遠程分支

  6. 其他推送方法
    git push --force origin 用於本地版本比遠程版本舊時強行推送本地版本
    git push origin [tag] 推送本地標籤到遠程
    git push origin --tags 推送本地所有標籤到遠程
    git push origin --delete tag [tagname] 刪除遠程倉庫標籤

  7. 從遠程獲取項目
    git clone [email protected]:/home/xiecheng/useGit/gitrepo/ai.git
    注意:獲取到本地的項目會自動和遠程倉庫建立連接。且獲取的項目本身也是個git項目。

  8. 從遠程獲取代碼
    git pull
    git fetch origin master:tmp(將遠程分支master拉取到本地,作爲tmp分支)

區別:

  • pull將遠程內容直接拉取到本地,並和對應分支內容進行合併
  • fetch將遠程分支內容拉取到本地,但是不會和本地對應分支合併,可以自己判斷後再使用merge合併。

GitHub使用

介紹

github是一個開源的項目社區網站,擁有全球最多的開源項目。開發者可以註冊網站在github建立自己的項目倉庫。

網址: github.com

代碼管理工具:git

獲取項目

  • 在左上角搜索欄搜索想要的獲取的項目
    在這裏插入圖片描述
  • 選擇項目後複製項目git地址
    在這裏插入圖片描述
  • 在本地使用git clone方法即可獲取

創建git倉庫

  • 點擊右上角加號下拉菜單,選擇新的倉庫
    在這裏插入圖片描述
  • 填寫相應的項目信息即可
  • github倉庫相對本地主機就是一個遠程倉庫 通過remote連接,如果需要輸入密碼輸 入github密碼即可。連接後即可使用遠程倉庫操作命令操作。readme文件會被自動作爲項目介紹
  • 如果是在即的倉庫在倉庫界面選擇settings,在最後可以選擇刪除倉庫

在這裏插入圖片描述
在這裏插入圖片描述

添加ssh祕鑰

如果使用http協議訪問github則每次都需要輸入密碼,如果是自己的私人計算機可以使用ssh協議訪問,添加祕鑰後則不再需要每次輸入密碼。

  • 登錄github賬號
  • 右上角頭像下拉菜單–>settings -->左側 SSH and GPG keys -->new ssh key -->填寫title,將私人計算機公鑰內容加入key文本框 點擊add…
     在這裏插入圖片描述

pip 的使用

  1. 作用 : 管理python的標準第三方庫中第三方軟件包(標準第三方庫:經過驗證的,比較好的第三方庫)

  2. 安裝

    sudo apt-get install python3-pip

  3. 常用命令:

    安裝軟件: pip3 install [package]
    e.g. sudo pip3 install ssh

    查看當前python軟件包 : pip3 list

    搜索某個名字的python包:pip3 search [name]

    查看軟件包信息:pip3 show [package]

    升級軟件包: pip3 install --upgrade [package]

    卸載軟件包: sudo pip3 uninstall [package]
    e.g. sudo pip3 uninstall ssh

    導出軟件包環境:pip3 freeze > requirements.txt
    根據文檔自動安裝:pip3 install -r requirements.txt

軟件項目開發流程

流程:需求分析 ----》 概要設計 —》 項目計劃 ----》詳細設計—》編碼測試 -----》項目測試 ----》調試修改 —》項目發佈 ----》後期維護

  1. 需求分析 :確定用戶的真實需求
  • 確定用戶的真實需求,項目的基本功能(產品經理)
  • 確定項目的整體難度和可行性分析
  • 需求分析文檔,用戶確認
  1. 概要設計:對項目進行初步分析和整體設計
  • 確定功能模塊
  • 進行可行性分析 搭建整體架構圖
  • 確定技術思路和使用框架
  • 形成概要文檔指導開發流程
  1. 項目計劃 :確定項目開發的時間軸和流程(項目經理)
  • 確定開發工作的先後順序
  • 確定時間軸 ,事件里程碑
  • 人員分工
  • 形成甘特圖和思維導圖等輔助內容
  1. 詳細設計 :項目的具體實現手冊
  • 形成詳細設計文檔 : 思路,邏輯流程,功能說明,技術點說明,數據結構說明,代碼說明
  • 編碼測試 : 按照預定計劃實現代碼編寫,並且做基本監測
    • 代碼編寫
    • 寫測試程序
    • 技術攻關
  1. 項目測試 :對項目按照公進行測試
  • 跨平臺測試 ,使用測試
  • 根據測試報告進行代碼修改
  • 完成測試報告
  1. 項目發佈
  • 項目交付用戶進行發佈
  • 編寫項目說明文檔
  1. 後期維護
  • 維護項目正常運轉
  • 進行項目的迭代升級

項目注意事項

  • 按時完成項目工作和項目時間不足之間的衝突
  • 項目實施人員之間的衝突

項目工具的使用

編寫文檔: word ppt Excel markdown LaTex
項目流程圖 : Mindmanager visio
項目管理 : project
代碼管理 : Svn git

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章