git的一些基礎命令
Git常用命令
請確保已經安裝了git客戶端
一般配置
git --version//查看git的版本信息
git config --globaluser.name//獲取當前登錄的用戶
git config --globaluser.email//獲取當前登錄用戶的郵箱
登錄git
/* 如果剛沒有獲取到用戶配置,則只能拉取代碼,不能修改? 要是使用git,你要告訴git是誰在使用*/
git config --globaluser.name'userName'//設置git賬戶,userName為你的git賬號,
git config --globaluser.email'email'
創(chuàng)建一個文件夾
mkdir nodejs//創(chuàng)建文件夾nodejs
cd nodejs//切換到nodejs目錄下
初始化git倉庫
git init //在nodejs文件夾下初始化一個倉庫,此時文件里會到一個.git的隱藏文件夾
創(chuàng)建忽略文件
touch .gitignore//不需要服務器端提交的內容可以寫到忽略文件里
/*
? ? ? ? .git
? ? ? ? .idea
? ? */
查看目錄
ls -al
創(chuàng)建文件并寫入內容
如果文件不存在則會創(chuàng)建文件
echo"hello git"
>index.html//將'hello git' 寫入到index.html中
單個>箭頭表示寫入, >>表示追加
查看文件內容
catindex.html
增加到暫存區(qū)中
gitaddindex.html
gitadd-A//全部添加到緩存區(qū)
增加到版本庫中
gitcommit-m'備注信息'
查看版本
gitlog--oneline
比較差異
比較的是暫存區(qū)和工作區(qū)的差異
git diff
比較的是暫存區(qū)和歷史區(qū)的差異
git diff--cached
比較的是歷史區(qū)和工作區(qū)的差異(修改)
git diff master
撤回內容
(如果修改了工作區(qū)的文件后發(fā)現改錯了,可以用暫存區(qū)或者版本庫里的文件替換掉工作區(qū)的文件)
用暫存區(qū)中的內容或者版本庫中的內容覆蓋掉工作區(qū)
gitcheckoutindex.html
取消增加到暫存區(qū)的內容(添加時)
gitresetHEADindex.html
//顯示目錄的狀體 有沒有添加或者修改文件
gitstatus
刪除本地文件
rm fileName
刪除暫存區(qū)
保證當前工作區(qū)中沒有index.html
gitrmindex.html--cached
使用--cached 表示只刪除緩存區(qū)中的內容
回滾版本
回滾最近的一個版本 git log
gitreset--hard HEAD/commit_id
回滾到未來
git reflog
分支管理
創(chuàng)建分支
git branch dev
切換分支
git checkout dev
創(chuàng)建分支并切換分支
git checkout -b dev
刪除分支
git branch -d dev
在分支上提交新的版本
gitcommit-a -m'dev1'
合并分支
gitmergedev
分支的合并后顯示log
gitlog--oneline --graph --decorate
在分支開發(fā)的過程中遇到其他問題需要切換其他分支
保留寫好的內容在切換到主干
保留內容
git stash
在次切換分之后需要應用一下保留的內容
git stash apply
丟掉保存的內容
git stashdrop
使用并丟掉
git stashpop
最佳分支
-有的時候開發(fā)需要合并指定的內容,而不是合并所有的提交,所以我們需要挑選最好的,自己生產版本
合并分支把樹杈掰到主干上
git rebase
添加遠程的倉庫
push -u
-u參數 upstream
git push origin master -u//獲取最新代碼
連接遠程倉庫
git remoteaddorigin 倉庫的地址
查看遠程倉庫
git remote -v
刪除遠程倉庫
git remote rm origin
git常用命令
安裝及配置:
Ubuntu下安裝:sudo apt-get install git
配置用戶名:git config --global user.name "你的名字"
配置e-mail:git config --global user.email "你的郵箱@xx.com"
與添加有關的:
將當前目錄變?yōu)閭}庫:git init
將文件添加到暫存區(qū):git add 文件名 [可選:另一個文件名]
將暫存區(qū)提交到倉庫:git commit –m "描述"
與查詢有關的:
查詢倉庫狀態(tài):git status
比較文件差異(請在git add之前使用):git diff 文件名
查看倉庫歷史記錄(詳細):git log
查看倉庫歷史記錄(單行):git log --pretty=online或git log --online
查看所有版本的commit ID:git reflog
與撤銷有關的:
撤銷工作區(qū)的修改:git checkout -- 文件名
撤銷暫存區(qū)的修改:git reset HEAD 文件名
回退到歷史版本:git reset --hard 該版本ID
回退到上個版本:git reset --hard HEAD^
上上版本是HEAD^^,也可用HEAD~2表示,以此類推
與標簽有關的:
為當前版本打標簽:git tag 標簽名
為歷史版本打標簽:git tag 標簽名 該版本ID
指定標簽說明:git tag –a 標簽名 –m "標簽說明" [可選:版本ID]
查看所有標簽:git tag
查看某一標簽:git show 標簽名
刪除某一標簽:git tag –d 標簽名
與GitHub有關的:
先有本地庫,后有遠程庫,將本地庫push到遠程庫
關聯本地倉庫和GitHub庫:git remote add origin 網站上的倉庫地址
第一次將本地倉庫推送到GitHub上:git push –u origin master
先有遠程庫,后有本地庫,從遠程庫clone到本地庫
從遠程庫克隆到本地:git clone 網站上的倉庫地址
網站地址可以選擇HTTPS協(xié)議(https://github.com...)、SSH協(xié)議(git@github.com...)。
如果選擇SSH協(xié)議,必須將Ubuntu的公鑰添加到GitHub上。見下一步
SSH Key
生成SSH Key:ssh-keygen –t rsa –C "你的郵箱@xx.com"
生成Key時彈出選項,回車選擇默認即可。
Key保存位置:/root/.ssh
登陸GitHub,創(chuàng)建new SSH key,其內容為/root/.ssh/id_rsa.pub中文本
已經有了本地庫和遠程庫,二者實現同步
本地庫的改動提交到遠程庫:git push origin master
更新本地庫至遠程庫的最新改動:git pull