前言
自動(dòng)幫助記錄每次文件的改動(dòng),同時(shí)協(xié)作永工作
學(xué)習(xí)git命令是充分必要的
集中式和分布式
分布式每個(gè)人電腦都是一個(gè)完整的版本庫,也有類似中央服務(wù)器的電腦,但是這個(gè)服務(wù)器只是用來交互打架的修改沒有它大家也一樣干活,只是交互修改不方便而已
安裝只要安裝了xcode就可以了
倉庫:里面文件修改,刪除,添加都能被git追蹤,認(rèn)識(shí)時(shí)刻都能追蹤歷史或者將來某哥時(shí)刻還原只能追蹤文本文件的改動(dòng)
創(chuàng)建目錄和查看路徑
mkdir 創(chuàng)建目錄
cd 進(jìn)入到目錄里面
pwd 用于顯示當(dāng)前的目錄
cat 查看文件內(nèi)容
Git命令使用說明
初始化一個(gè)目錄成git的倉庫(版本庫)包括暫存區(qū)和master分支
git init查看當(dāng)前目錄的文件包括隱藏文件
ls -ah獲取git命令的手冊頁
git help使用git前需要進(jìn)行一些全局的配置
> 1、用戶目錄下的配置,當(dāng)前登陸用戶所有的倉庫調(diào)用這個(gè)配置 ~/.gitconfig
> 2、項(xiàng)目目錄的配置,優(yōu)先級高,覆蓋全局配置配置用戶名和郵箱
git config --global user.name "wirelessqa"
git config --global user.email wirelessqa.me@gmail.com
git config --global color.ui true 讓Git顯示顏色,會(huì)讓命令輸出看起來更醒目
.gitignore 配置 不納入git管理 主要是系統(tǒng)文件,編譯文件,自定義的文件 ,這個(gè)文件也用推送到遠(yuǎn)程庫
https://github.com/github/gitignore ,創(chuàng)建 touch 命令
配置編輯器 git在需要輸入一些消息
git config --global core.editor emacs
配置比較工具
git config --global merge.tool vimdiff
讀取配置(同一個(gè)配置選項(xiàng)會(huì)出現(xiàn)多次,以最后一次為準(zhǔn))
提交文件之前
先查看當(dāng)前的狀態(tài) ,能提示你接下來怎么做的命令,比如修改工作區(qū)文件內(nèi)容,提示你添加到暫存區(qū)或者丟棄工作區(qū)修改的命令
查看文件到底修改了什么
提交修改
納入git倉庫管理,把修改添加到暫存區(qū)(使用.代表將所有的修改進(jìn)行添加)
把暫存區(qū)里面的所有修改提交到當(dāng)前分支同時(shí)創(chuàng)建一個(gè)快照
如果確認(rèn)當(dāng)前所有變更都是同一個(gè)commit,可以直接加-a,就不必一個(gè)一個(gè)add了
工作區(qū)和版本庫里最新版本的區(qū)別
git diff HEAD -- readme.txt
查看提交歷史
撤銷修改
git checkout -- readme.txt
> 1、修改后還沒添加到暫存區(qū) ,撤銷修改回到最近一次commit的狀態(tài),也就是和版本庫里面的狀態(tài)一樣
> 2、修改后被添加到暫存區(qū)了,又做了修改 ,撤銷修改就回到添加到暫存區(qū)后的狀態(tài),也就是跟暫存區(qū)里面的狀態(tài)保持一致
> 3、用版本庫里的版本替換工作去的版本,無論工作區(qū)是修改還是刪除
可以把暫存區(qū)的修改撤銷掉
提交文件刪除修改到暫存區(qū)
版本回退
git的版本回退知識(shí)改了head 指針,順便把工作區(qū)的文件更新掉了
git reset --hard HEAD^
或
git reset --hard 3628164
查看命令歷史
可以看到reset和commit等命令歷史,可以利用這個(gè)命令查看最近一次
工作區(qū)和暫存區(qū)
工作區(qū):電腦上能看到的目錄 ,里面有個(gè).git 隱藏目錄這個(gè)不算工作區(qū),是git的版本庫版本庫里面包含了暫存區(qū)stage和git為我們自動(dòng)創(chuàng)建第一個(gè)分支
遠(yuǎn)程庫管理
查看遠(yuǎn)程庫信息
修改遠(yuǎn)程倉庫地址(在已經(jīng)add了遠(yuǎn)程倉庫地址,使用它進(jìn)行修改地址)
git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git
關(guān)聯(lián)遠(yuǎn)程庫(添加遠(yuǎn)程倉庫地址)
git remote add origin git@github.com:linhbcode/first-test.git
本地的master分支推送到遠(yuǎn)程的master分支上,原則就是master分支要與遠(yuǎn)程同步 ,dev 分支開發(fā)分支,也需要遠(yuǎn)程同步
master分支推送到遠(yuǎn)程的master分支,本地master 分支和遠(yuǎn)程master分支建立關(guān)聯(lián)
git push -u origin master
Git自動(dòng)把本地的master分支和遠(yuǎn)程的master分支對應(yīng)起來了,并且,遠(yuǎn)程倉庫的默認(rèn)名稱是
origingit clone git@github.com:linhbcode/first-test.git
git pull 如果提示沖突解決沖突 抓去信息碰到?jīng)]有鏈接的 有兩種方式解決
> 1、git branch --set-upstream branch-name origin/branch-name 建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)
> 2、git pull origin branchname
分支管理
1、不完整的代碼在其它分支上提交
2、每個(gè)提交都在一個(gè)時(shí)間線上的節(jié)點(diǎn)上,分支相當(dāng)于指向一個(gè)節(jié)點(diǎn)的指針
head 本質(zhì)上是指向分支的指針
創(chuàng)建并切換分支
本地分支創(chuàng)建和遠(yuǎn)程分支相同的分支,主要是倉庫從遠(yuǎn)程clone過來的(一般要先git fetch,再git checkout -b branch-name origin/branch-name)
git checkout -b branch-name origin/branch-name
創(chuàng)建分支
切換分支 , 如果當(dāng)前的工作只完成一半,還沒發(fā)提交的話
可以用 git stash 保存工作現(xiàn)場 ,在用它之前可以 git stash list 查看有幾個(gè)暫存的列表
查看有幾個(gè)暫存的列表
保存工作現(xiàn)場
恢復(fù) 工作現(xiàn)場
來刪除 工作現(xiàn)場
查看當(dāng)前分支
查看遠(yuǎn)程分支
合并分支
刪除分支
強(qiáng)行刪除分支
(刪除遠(yuǎn)程分支)冒號(hào)前面的空格不能少,原理是把一個(gè)空分支push到server上,相當(dāng)于刪除該分支。
git push origin :branch-name
提交本地test分支作為遠(yuǎn)程的master分支
git push origin test:master
提交本地test分支作為遠(yuǎn)程的test分支
git push origin test:test
剛提交到遠(yuǎn)程的test將被刪除,但是本地還會(huì)保存的,不用擔(dān)心
查看分支合并圖
查看提交歷史
git log --pretty=oneline --abbrev-commit
合并分支
合并分支的時(shí)候不采用ff模式(分支刪除了還能看的到分支歷史信息)
git merge --no-ff -m "merged bug fix 101" issue-101
標(biāo)簽管理
描述開發(fā)歷程,在發(fā)布一個(gè)版本的時(shí)候打一個(gè)標(biāo)簽
查看所有的標(biāo)簽
對莫一個(gè)提交歷史打一個(gè)標(biāo)簽
查看標(biāo)簽信息
正式開發(fā)下最好用這條語句標(biāo)注下這個(gè)標(biāo)簽的描述
git tag -a v0.1 -m "version 0.1 released" 3628164
刪除標(biāo)簽
推送標(biāo)簽
推送全部標(biāo)簽
遠(yuǎn)程刪除標(biāo)簽(先從本地刪除標(biāo)簽)
git push origin :refs/tags/v0.9
結(jié)語
目前就整理了些常用的命令,足夠?qū)Ω镀匠5墓ぷ髁?,如果大家還想讀讀Git原理的話,建議看看原文地址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001373962845513aefd77a99f4145f0a2c7a7ca057e7570000,里面講的特別全。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- Git代碼提交流程及git命令匯總(基礎(chǔ)篇)
- Linux中Git集中操作命令匯總
- 解決因文件權(quán)限導(dǎo)致git fetch命令執(zhí)行失敗的問題
- Git pull命令與fetch命令的區(qū)別
- Git 常用命令速查表(圖文+表格)
- 分享下自己總結(jié)的Git常用命令
- git blame命令詳解