git 開發操做流程,詳解

git

  • git 分佈式管理系統

git 本地操做javascript

  1. 不停地創造文件進行備份(沒有修改提示),git能夠幫咱們管理代碼,保證代碼不丟失
  2. 記錄歷史只要提交到git上就永久不會丟失,能夠隨時"穿越"
  3. 團隊協做, 兩我的同事修改文件同一行(不是每一行),須要手動接觸衝突,其餘能夠實現自動合併(若是是模塊化,組件化開發,這是最好的互不影響的模式)
  4. 強大的分支管理系統
  5. 多端共享 pc ios andriod
  6. 速度比svn快
  7. 有個單獨的.git文件夾
  8. 有工做區, 暫存區, 歷史區

  • svn 集中式管理系統
  1. 須要一臺中央服務器
  2. 每一個文件夾都有.svn的文件

git安裝

windows got-scm.com 下載安裝 mac 若是安裝過xcode 自帶git,homebrerw是mac的包管理器(咱們能夠安裝插件更改界面http://ohmyz.sh/ + http://www.iterm2.com/)css

配置用戶(第一次使用須要進行配置的)

能夠經過 git config --list 來判斷有沒有進行配置,若是配置會出現user.email email, user.name name的字段 html

若是沒有須要手動簡歷連接,命令分別是:

git config --global user.name "yourname"
git config --global user.email "youremail"
複製代碼

linux命令

剛剛cmd打開的管理器,咱們用的dos命令,可是在git bash here咱們用的是linux命令,這一點咱們要區分,下面咱們用linux命令進行初始化gitjava

初始化git git init (告訴那個文件夾被git管理)

正常咱們在文件下打開git,目錄顯示正常,可是在初始化git init 以後會初始化目錄,且將當前目錄做爲主分支,該目錄下後面會跟加一個(master)的字段,表明初始化成功,此時不存在分支主幹的說法,必須在提交以後纔會看見分支,不容許嵌套node

移除git對該問價夾的管理

咱們只須要 刪除該目錄下的.git 文件 rm -rf .git,執行以後,目錄上的(master)就會消失react

須要注意的是rm -rf是永久刪除,不可恢復,因此須要謹慎使用linux

其餘命令

pwd print working directory 打印工做日誌
rm 文件名 刪除文件
mkdir 建立文件
cd 目錄名 進入某個目錄
ls 查看該目錄下的文件
ls -al 查看該目錄下的文件(包括隱藏文件)
cat love.txt 查看文件內容
touch 文件名.後綴  建立空文件
each hello > love.txt  向文件夾追加輸入 hello
vi 文件名.後綴   編輯文件
i:插入模式 esc退出編輯者模式  q!強制退出 :wq 保存並退出
each hello > love.txt  向文件夾輸入 hello
mv my-my ~/Desktop 把my-my移動到桌面
複製代碼

  • 退出vim編輯器的方法及區別

當文本編輯結束以後,一般須要退出編輯器。退出編輯器又分爲4種狀況:保存退出、正常退出、不保存退出及強制退出,請參考jingyan.baidu.com/album/495ba…ios

提交到歷史區(不是github)

咱們說git有有工做區, 暫存區, 歷史區三個區,可是工做區不能直接提交到歷史區,咱們在提交以前首先要認識本身在哪一個區git status(git的提示很不錯的)git

目錄紅色表明工做區,綠色表明暫存區 ,圖片提示咱們能夠經過git add .,git add -a,git add 文件名稱來提交到暫存區,提交以後就變爲綠色github

  • 到暫存區後,若是想刪除暫存區的東西,咱們用git rm --cached . -r (-r 是遞歸, --cached 表示暫存區)退出暫存區
  • 提交到暫存區後提交到歷史區,用git commit -m"提交信息" 提交以後就會生成版本號

  • 咱們能夠用 git log查看版本號(自下而上),最上面的是最新的

撤銷,回滾

  1. 比較文件 git diff 默認是工做區和暫存區比(也能夠工做區和歷史區,或者歷史區和暫存區)
  • git diff 工做區和暫存區比
  • git diff master 工做區和歷史區
  • git diff --cached 歷史區和暫存區

  1. 從暫存區將工做區內容覆蓋掉 git checkout love.txt 可是不能在返回了,
  2. 假設已經提交到暫存區, 咱們能夠用$ git reset HEAD love.txt 讓暫存區倒退,在執行2 返回
  3. history > 1.txt 將歷史記錄導入到文件裏
  4. 若是提到歷史記錄,那麼永遠不會丟,以前咱們不能將工做區的直接提交到歷史區,可是隻要提交過一次,第二次就能夠直接提交到歷史區,原理仍是會走到暫存區,只不過是快捷方法而已git commit -a -m"third"
  5. 當咱們須要從歷史區回滾到某個版本 git reset --hard 版本號 會那回滾的版本庫去覆蓋掉工做區和暫存區,那麼要從之前回過來呢?
  6. git reflog能夠打印出全部記錄 git reset --hard 版本號 能夠回滾和穿越了
  7. 往上走一次用git reset --hard HEAD^

分支

咱們開發必定是多人共同開發,可是不多是第二我的提交的版本覆蓋第一我的的版本,咱們須要創建分支,最後合併代碼.

  1. 看目前有幾個分支(*表明當前在哪兒個分支上) git branch 查看分支
  2. 建立分支 git branch dev
  3. 切換分支 git checkout dev
  4. 刪除分支 git branch -D 分支名 不能刪除當前分支
  5. 建立並切換分支 git checkout -b dev ( 剛建立分支的時候,分支marster屬於同一個空間,除非分支已經commit了)
  6. 當改了dev文件的時候,將不能切換分支,必須提交更改,或者在沒有沒交以前暫存文件,暫存文件 git stash 暫存是使用過渡區覆蓋工做區(危險)

  1. 想還原暫存的內容 git stash pop
  2. 分支合併git merge dev

遇到衝突時,只能手動解決,留下想要的結果,再次提交,使用 gitgroph顯示合併信息

遠程倉庫

sourceTree免費管理git的工具 在本地推給別人,咱們須要一個平臺github,,,只有歷史區才能推到歷史區的結果

  1. github帳號
  2. fork複製
  3. 在當前項目建立READEME.md
# 項目說明
---

## 技術棧
---
* es2015
* React
* React-Router
* Redux
* babel
* node

## 目錄說明
---
* src 源代碼所在目錄
    * module 業務代碼
        * demo 各類react樣例
    * resource 資源文件
        * css 公共css
* .babelrc babel配置文件 push代碼方式,不必作重複勞動
* ...

## 啓動服務
---
* `make server|edp webserver start` 啓動本地服務
* 本地調試
## 多人開發模式
---
同一時間多人開發,按人建立分支,分支按照分支的命名規範。
### 提測
提測時間點有交叉的,統一merge到`test`分支,不要構建本身分支,否則會覆蓋其餘人功能
### 上線  
### ***`說明:`***
* 刪除本地test分支
* 刪除遠程test分支

## 其餘
---
* dev環境地址:http://dev-
* tes環境地址:http://test-
* test環境部署地址: http://
* IDE,建議使用Visual Studio Code,或者使用Sublime Text,安裝基礎插件

## 人員
---
amily
複製代碼
  1. git init 初始化項目
  2. git status git add 注意 只要咱們用webstorm編輯文件,就會出現.idea的文件夾
  3. 創建一個文件 .gitignore (配置文件)忽略咱們不想要提交的內容 相似於npm.ignore
.idea
node_modules
.Ds_store(mac)
...
複製代碼
  1. git不會上傳空文件夾
  2. 添加.gitkeep在空文件夾內
  3. 創建新倉庫
  4. 將代碼拉到本地 git pull
  5. git remote add 名稱 地址 添加遠程倉庫
  6. git push -u 名稱 master (-u 會記住往origin master 提交)
  7. git remote -v 列出詳細信息,在每個名字後面列出其遠程url,顯示對應的克隆地址:
  8. 刪除 git remote rm 名字

拉取最新線上代碼

pull至關於 git fetch + git master 關聯遠程倉庫以後咱們須要把代碼推上去 git push origin(名稱) master(分支), 第一次須要輸入用戶名,第二次密碼(暗文) 僅第一次須要 提交以後 (若是.idea也提交上去了,咱們關掉webstorm , rm -rf .idea刪掉,而後在提交就行了) 前提是線上課線下的不同,咱們須要先git pull origin master

若是報以上錯說明咱們須要合併線上代碼 esc + :wq就能夠了,此時咱們會多一條日誌,而後直接推送

若是報以上錯,說明衝突,須要更改解決衝突在提交代碼,在push

代碼fork-pull-request

在Edit上添加 description , website 線上網址
通常咱們會創建一個gh-pages分支來發布咱們的靜態頁

  1. 在項目中建立gh-pages分支 git checkout-b gh-pages
  2. 將分支提到倉庫 git add . git conmit -m"" git push origin gh-pages(放靜態文件,不能放服務器,不能放數據庫)
  3. 找到提供的網址 在settingsGitHub-Pages
  4. 經過搜索找到人格github 在users找到我的,能夠follow,能夠看到這我的的活躍度 5.更改別人代碼 能夠fork在當前項目下克隆一份,若是代碼更新,不會隨之更新,而後拉取到本地git clone 地址 別名 git remote -v檢查,默認就是git倉庫地址,並且有origin地址,能夠將代碼提交到本身的倉庫上,
  5. 提交到git上以後,因爲本身倉庫地址和該項目倉庫地址是fork關係,執行new pull request會將本身的代碼推給對方,create pull request建立
  6. 對方接收到以後紅色是fork的,綠色是本地的close pull request拒絕merge pull request贊成
  7. issue能夠提交對項目的質疑

咱們本身開發的時候也要這樣嗎?在setting裏面有貢獻者,能夠把項目免費開給這些人,collabrators添加貢獻者,對方須要確認,被添加的人擁有最大權限,copy invitelink拷貝邀請連接,一接收,項目就能夠直接操做了.

界面操做

GUI 咱們但願以雞肉面的姓氏操做咱們的git倉庫,git clone 地址 別名 vcs第二行,點下彈框,選git勾選上,在點右鍵會出現git屬性

git裏面有許多命令,能夠直接選擇

可能會碰見的問題

想從新配置git config

複製代碼

git Authentication failed解決辦法

https help.github.com/articles/ge…

help.github.com/articles/wo…

密碼是本身中間設置的密碼哦!

iterm2 + schemes/zsh

schemes下載壓縮包 ,配置item2 的preferences zsh

相關文章
相關標籤/搜索