Git命令的簡單整理大全
前言
自動幫助記錄每次文件的改動,同時協(xié)作永工作
學(xué)習(xí)git命令是充分必要的
集中式和分布式
分布式每個人電腦都是一個完整的版本庫,也有類似中央服務(wù)器的電腦,但是這個服務(wù)器只是用來交互打架的修改沒有它大家也一樣干活,只是交互修改不方便而已
安裝只要安裝了xcode就可以了
倉庫:里面文件修改,刪除,添加都能被git追蹤,認識時刻都能追蹤歷史或者將來某哥時刻還原只能追蹤文本文件的改動
創(chuàng)建目錄和查看路徑
mkdir 創(chuàng)建目錄
cd 進入到目錄里面
pwd 用于顯示當前的目錄
cat 查看文件內(nèi)容
Git命令使用說明
初始化一個目錄成git的倉庫(版本庫)包括暫存區(qū)和master分支
git init查看當前目錄的文件包括隱藏文件
ls -ah獲取git命令的手冊頁
git help使用git前需要進行一些全局的配置
> 1、用戶目錄下的配置,當前登陸用戶所有的倉庫調(diào)用這個配置 ~/.gitconfig
> 2、項目目錄的配置,優(yōu)先級高,覆蓋全局配置配置用戶名和郵箱
git config --global user.name "wirelessqa" git config --global user.email wirelessqa.me@gmail.com git config --global color.ui true 讓Git顯示顏色,會讓命令輸出看起來更醒目
.gitignore 配置 不納入git管理 主要是系統(tǒng)文件,編譯文件,自定義的文件 ,這個文件也用推送到遠程庫
https://github.com/github/gitignore ,創(chuàng)建 touch 命令
配置編輯器 git在需要輸入一些消息
git config --global core.editor emacs
配置比較工具
git config --global merge.tool vimdiff
讀取配置(同一個配置選項會出現(xiàn)多次,以最后一次為準)
git config --list
提交文件之前
先查看當前的狀態(tài) ,能提示你接下來怎么做的命令,比如修改工作區(qū)文件內(nèi)容,提示你添加到暫存區(qū)或者丟棄工作區(qū)修改的命令
git status
查看文件到底修改了什么
git diff
提交修改
納入git倉庫管理,把修改添加到暫存區(qū)(使用.代表將所有的修改進行添加)
git add .
把暫存區(qū)里面的所有修改提交到當前分支同時創(chuàng)建一個快照
git commit -m ""
如果確認當前所有變更都是同一個commit,可以直接加-a,就不必一個一個add了
git commit -a -m ""
工作區(qū)和版本庫里最新版本的區(qū)別
git diff HEAD -- readme.txt
查看提交歷史
git log --pretty=oneline
撤銷修改
git checkout -- readme.txt
> 1、修改后還沒添加到暫存區(qū) ,撤銷修改回到最近一次commit的狀態(tài),也就是和版本庫里面的狀態(tài)一樣
> 2、修改后被添加到暫存區(qū)了,又做了修改 ,撤銷修改就回到添加到暫存區(qū)后的狀態(tài),也就是跟暫存區(qū)里面的狀態(tài)保持一致
> 3、用版本庫里的版本替換工作去的版本,無論工作區(qū)是修改還是刪除
可以把暫存區(qū)的修改撤銷掉
git reset HEAD file
提交文件刪除修改到暫存區(qū)
git rm test.txt
版本回退
git的版本回退知識改了head 指針,順便把工作區(qū)的文件更新掉了
git reset --hard HEAD^ 或 git reset --hard 3628164
查看命令歷史
可以看到reset和commit等命令歷史,可以利用這個命令查看最近一次
commitidgit reflog
工作區(qū)和暫存區(qū)
工作區(qū):電腦上能看到的目錄 ,里面有個.git 隱藏目錄這個不算工作區(qū),是git的版本庫版本庫里面包含了暫存區(qū)stage和git為我們自動創(chuàng)建第一個分支
遠程庫管理
查看遠程庫信息
git remote -v
修改遠程倉庫地址(在已經(jīng)add了遠程倉庫地址,使用它進行修改地址)
git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git
關(guān)聯(lián)遠程庫(添加遠程倉庫地址)
git remote add origin git@github.com:linhbcode/first-test.git
本地的master分支推送到遠程的master分支上,原則就是master分支要與遠程同步 ,dev 分支開發(fā)分支,也需要遠程同步
git push origin master
master分支推送到遠程的master分支,本地master 分支和遠程master分支建立關(guān)聯(lián)
git push -u origin master
Git自動把本地的master分支和遠程的master分支對應(yīng)起來了,并且,遠程倉庫的默認名稱是
origingit clone git@github.com:linhbcode/first-test.git
git pull 如果提示沖突解決沖突 抓去信息碰到?jīng)]有鏈接的 有兩種方式解決
> 1、git branch --set-upstream branch-name origin/branch-name 建立本地分支和遠程分支的關(guān)聯(lián)
> 2、git pull origin branchname
分支管理
1、不完整的代碼在其它分支上提交
2、每個提交都在一個時間線上的節(jié)點上,分支相當于指向一個節(jié)點的指針
head 本質(zhì)上是指向分支的指針
創(chuàng)建并切換分支
git checkout -b dev
本地分支創(chuàng)建和遠程分支相同的分支,主要是倉庫從遠程clone過來的(一般要先git fetch,再git checkout -b branch-name origin/branch-name)
git checkout -b branch-name origin/branch-name
創(chuàng)建分支
git branch dev
切換分支 , 如果當前的工作只完成一半,還沒發(fā)提交的話
git checkout dev
可以用 git stash 保存工作現(xiàn)場 ,在用它之前可以 git stash list 查看有幾個暫存的列表
查看有幾個暫存的列表
git stash list
保存工作現(xiàn)場
git stash
恢復(fù) 工作現(xiàn)場
git stash apply
來刪除 工作現(xiàn)場
git stash drop
查看當前分支
git branch
查看遠程分支
git branch -r
合并分支
git merge dev
刪除分支
git branch -d dev
強行刪除分支
git branch -D dev
(刪除遠程分支)冒號前面的空格不能少,原理是把一個空分支push到server上,相當于刪除該分支。
git push origin :branch-name
提交本地test分支作為遠程的master分支
git push origin test:master
提交本地test分支作為遠程的test分支
git push origin test:test
剛提交到遠程的test將被刪除,但是本地還會保存的,不用擔(dān)心
git push origin :test
查看分支合并圖
git log --graph
查看提交歷史
git log --pretty=oneline --abbrev-commit
合并分支
git merge branchname
合并分支的時候不采用ff模式(分支刪除了還能看的到分支歷史信息)
git merge --no-ff -m "merged bug fix 101" issue-101
標簽管理
描述開發(fā)歷程,在發(fā)布一個版本的時候打一個標簽
查看所有的標簽
git tag
對莫一個提交歷史打一個標簽
git tag v1.0 [commit id]
查看標簽信息
git show [tagname]
正式開發(fā)下最好用這條語句標注下這個標簽的描述
git tag -a v0.1 -m "version 0.1 released" 3628164
刪除標簽
git tag -d v0.1
推送標簽
git push origin v1.0
推送全部標簽
git push origin --tags
遠程刪除標簽(先從本地刪除標簽)
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í)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
git-github 子模塊倉庫更新(git submodule)及git中submodule子模塊
這篇文章主要介紹了git-github 子模塊倉庫更新(git submodule)/git中submodule子模塊的添加、使用和刪除,使用子模塊后,不必負責(zé)子模塊的維護,只需要在必要的時候同步更新子模塊即可,需要的朋友可以參考下2023-03-03UTF-8 GBK UTF8 GB2312 之間的區(qū)別和關(guān)系介紹
UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字符的一種多字節(jié)編碼,它對英文使用8位(即一個字節(jié)),中文使用24為(三個字節(jié))來編碼2011-12-12一不小心git rebase后出現(xiàn)(master|REBASE 1/10)的問題及解決辦法
這篇文章主要介紹了一不小心git rebase后出現(xiàn)(master|REBASE 1/10)的問題及解決辦法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07php/asp/asp.net中判斷百度移動和PC蜘蛛的實現(xiàn)代碼
這篇文章主要介紹了php/asp/asp.net中判斷百度移動和PC蜘蛛的實現(xiàn)代碼,需要的朋友可以參考下2015-09-09HTTP協(xié)議詳解_動力節(jié)點Java學(xué)院整理
這篇文章主要介紹了HTTP協(xié)議詳解,超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標記語言(HTML)文檔從Web服務(wù)器傳送到客戶端的瀏覽器2017-07-07快速解決eclipse中注釋的代碼依然會執(zhí)行的問題
下面小編就為大家?guī)硪黄焖俳鉀Qeclipse中注釋的代碼依然會執(zhí)行的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12