版本管理_git

百度 icodehtml

 

/**
 * @file  公用函數
 * @author v_koujianfeng
 */

 

1. 設置 sshkeynode

 

2. 在本機克隆linux

 

3. 設置關閉一些沒必要要的代碼提交規則git

 

4. git checkout -b devgithub

5. git checkout -b dev_kjf面試

 

6. git pull origin dev_kjfbash

7. git add .服務器

8. git commit -m 'first commit'app

9. git push origin HEAD:refs/for/dev_kjfssh

10. 去評審看,檢查不經過則重複 6-10 的步驟,沒錯誤了再相關人員打分

11. 合併代碼到相關分支: 在 dev 分支 執行 git merge dev_kjf ----是將 dev_kjf 的代碼 合併到 dev

 

git

世界上最好的版本管理工具,分佈式版本控制系統。

林納斯-託瓦斯,自由主義教皇(git、linux)

git 無論理空文件夾

 

對比於 SVN

 mkdir XX        建立一個空目錄 XX 指目錄名

pwd         顯示當前目錄的路徑
cat xx         查看 xx 文件內容

git rm xx         刪除 xx 文件 以後要 commit


git init         把當前的目錄變成能夠管理的 git 倉庫,生成隱藏的 .git 文件夾
git add xx         把 xx 文件添加到暫存區
git commit -m "xx"         提交文件 -m 後面的是註釋
git status         查看倉庫狀態
git log         查看歷史記錄
git reset --hard HEAD^         往上回退一個版本
git reflog         查看歷史記錄的版本號 id
git checkout -- xx         把 xx 文件在工做區的修改所有撤銷
git remote add origin https://github.com/xxxxx/a.git         關聯一個遠程庫
git push -u origin master         把(第一次要用 -u,之後不用)當前 master 分支推送到遠程庫
git clone https://github.com/xxxxx         從遠程庫中克隆
git checkout -b dev         建立 dev 分支 並切換到 dev 分支上
git branch         查看當前全部的分支
git checkout master         切換回 master 分支
git merge dev         在當前分支合併 dev 分支
git branch -d dev        刪除 dev 分支
git branch xxx         建立分支 xxx
git remote         查看遠程庫信息
git remote -v         查看遠程庫的詳細信息
git pull origin master        將遠程庫的更新拉取到本地來
git push origin master        git 會把 master 分支推送到遠程庫對應的分支上

  • 安裝:
  • 配置環境變量
  • Git 環境的默認路徑是經過 HOME 環境變量還指定的
  • Git 的全局配置文件默認在系統用戶 home 目錄下(如:C:\Users\Administrator,此處Administrator爲當前登陸用戶名)
  • 分別打開 Git 安裝目錄下的 cmd 目錄下的 gitk.cmd 文件和 etc 目錄下的 profile 文件
  • HOME ---- %HOMEDRIVE%%HOMEPATH%
  • HOMEDRIVE ---- C:\
  • HOMEPATH ---- \Users\Administrator
  • SystemRoot ---- C:\WINDOWS
  • windir ---- C:\WINDOWS
  • USERPROFILE ---- C:\User\Administrator
  • bash 配置:

git config --global user.name 'RyenToretto'

git config --global user.email '18273727925@qq.com'

git config user.name

git config user.email

  • 基本操做

 

git status        查看當前項目狀態

  • 分支連接

git remote        不帶參數,列出已經存在的遠程分支

git remote -v        等同於上圖命令

git remote add kjf git://github.com/paulboone/ticgit.git        建立一個別名 kjf 代替 長串的地址

git fetch kjf        抓取全部 kjf 有的,但本地倉庫沒有的信息,字串 kjf 指代對應的倉庫地址

  • 內容差別對比

git diff        工做區暫存區 的文件之間的差別對比

git diff --cached        版本區暫存區 文件之間的差別對比

git diff master        工做區版本區 文件之間的差別對比

  • 日誌 和 版本

git log        日誌 和 版本號,HEAD 表示當前正在使用的分支,還有每次提交的哈希值

git reflog        精簡版的 日誌 和 版本

  • 版本回退

git checkout -- index.html        用暫存區指定文件替換工做區的指定文件 (危險)

git checkout HEAD index.html        用版本庫中的指定文件替換 暫存區和工做區 的文件 (更危險)

git rm --cached index.html        刪除暫存區的指定文件

git reset --hard HEAD        把暫存區清空,而後把版本庫中的內容 copy 到 暫存區

git reset --hard HEAD^        回退到最近一次的版本

git reset --hard 70d1707        回退到指定的 70d1707 版本

  • 刪除被 git 管理的文件

git rm -rf a.txt

git rm -rf test

  • 分支(常見面試題

git branch -d tags        刪除指定分支

git checkout -b tags        新建分支(拷貝自主分支),並切換到分支

git checkout master        切換到 主分支 master (由 .git 切換項目文件)

git checkout tags        切換到 tags 分支 (由 .git 切換項目文件)

git branch        顯示 全部分支 和 區別出 當前分支

git diff tags master        顯示 tags 分支 和 主分支 master 的有差別文件的 文件內容差別

git diff master tags        顯示兩個分支之間,有內容差別的文件列表

git diff master tags a.txt        顯示 tags 分支 和 主分支 master 指定文件的 文件內容差別

git merge tags        (在目標分支執行) 將 tags 分支合併到 目標分支____可能引起衝突(同一文件同一位置內容衝突)

若是產生衝突,會顯示 (master | MERGing)

衝突文件以下顯示

處理完成之後,正常操做提交,會發現  (master | MERGing) ----> (master)

  • 局域網服務器,項目版本控制

git init        初始化一個倉庫(最好在一個空文件夾下面執行初始化倉庫)____線下倉庫

編碼並提交,而後在 GitHub 新建一個倉庫,複製新倉庫的地址

git remote remove origin        刪除地址別名 origin

git remote add origin https://github.com/RyenToretto/taobao.copy.git        建立一個別名 origin 代替 長串的地址

git push -u origin master        託管上線到 GitHub

git pull origin master        拉取 GitHub 上的代碼到本地

ssh-keygen -t rsa -C '18273727925@qq.com'        生成密鑰

GitHub

git 項目託管網站

衝突: 同一文件的同一位置,內容出現衝突

處理:(pull 會把遠端內容拉取,可能進行自動合併的操做,產生衝突)

第一種方式:

git pull -u origin master        拉取 GitHub 的文件內容到本地,出現衝突

處理衝突文件

git add .

git commit -m '處理 xxx 的衝突'

git push -u origin master

第二種方式:

git fetch origin master:tmp        將 GitHub 的文件內容拉取到 tmp 分支上

git checkout tmp        切換到 tmp 分支

git diff tmp master        顯示 tmp 分支 與 master 分支的 文件內容差別

  • pull 和 fetch 的區別:

git pull origin master

將遠程倉庫的 master 分支上代碼版本 複製/合併 到本地 master 分支上

git fetch origin master:dev

新建了一個 dev 分支,將遠程倉庫的 master 分支上代碼版本複製到 dev 分支上
就必定不會產生衝突
git diff master dev 對比兩分支內容,觀察會不會產生衝突
若是會,先解決,在合併分支。若是不會,就直接合並分支

 

忽略文件(.gitignore 這個配置文件自己 是須要被提交 給 git 進行管理的)

直接在項目文件夾中建立 .gitignore 並設置忽略文件

.idea

node_modules

WebStorm 處理衝突

add

commit

pull        ----> ok 等待交互後,發現衝突,點 merge         

----> apply

push        最終推送成功

Fork & Pull Request & Create Pull Request ----> Merge Request

相關文章
相關標籤/搜索