經常使用git命令

今天整理項目突然發現有幾個git命令想不起來,因此從新整理了一下,算是個複習吧. 分支部分比較經常使用也比較重要.html

配置用戶

//查看當前配置
git config --list
//配置帳號密碼(全局)
git config --global user.name ""
git config --global user.email ""
//單獨爲某個項目倉庫配置
git config --local user.name ""
git config --local user.email ""
複製代碼

注: 對於不少程序員而言,咱們不只有公司的gitlab帳戶作公司的業務,也會有本身我的的github帳戶整理本身的學習代碼。 咱們可使用ssh key的方式配置多帳戶 Mac下配置多個Git帳戶,可是git config --local ... 命令實際上也能爲咱們簡單配置單獨的git倉庫管理,保證我的學習項目與公司項目的分開管理.linux

初始化git

  • 不要在文件夾裏初始化git,一個項目初始化一次,不要嵌套建立
git init 告訴git哪一個文件夾被git所管理
git status 查看git狀態
git add ./-A 把文件從工做區放入暫存區
git commit -m」描述「 添加到歷史區
git commit -a -m ‘描述’ 添加並提交
git log 查看歷史狀態

//示例
------
git add README.md            將md文件提交
git commit -m 「add md」    添加註釋
git push origin locDev:dev  將本地分支代碼推送到遠程dev分支
git push origin dev               下次提交直接提交代碼到遠端dev
------

git diff 工做區和暫存區比較
git diff master/分支名 工做區和歷史區比較
git diff --cached 暫存區和歷史區比較

git checkout ./文件名 撤銷 從暫存區中將工做區內容覆蓋掉
git reset HEAD ./文件名 回退文件,將文件從暫存區回退到工做區
git reset --hard 版本號 回滾到某個版本

git reflog 查看全部版本
git reset HEAD^ 回到上個版本
複製代碼

刪除暫存區

git rm --cached <文件名> 從暫存區刪除一個文件
git rm --cached . -r 刪除暫存區的文件
複製代碼

分支

git branch <branch name>  建立分支
git branch       查看本地分支     
git branch -r   查看遠程分支    
git branch -a   查看全部分支 本地及遠程的    
git branch -d <branch name>  刪除本地分支 
git branch -vv 查看全部分支追蹤關係    

git checkout -b <branch name> 建立並切換分支
git checkout <branch name>  切換分支
git checkout <file name>  將文件從暫存區拉回到工做區  
git checkout -b locDev origin/dev 從遠程dev分支拉取代碼建立本地locDev分支
git push --set-upstream origin <branch name> 新建遠程分支
git push origin locDev:dev 新建分支法2,將本地locDev提交到遠程dev分支,遠程沒有dev會自動建立    
git branch -d <branch name> 刪除本地分支      
git branch -m <old_branch_name> <new_branch_name> 修改本地分支名字

git branch -u origin/master <branch name>  本地分支追蹤遠程master    
或
git branch --set-upstream-to origin/master <branch name>

git push origin --delete <branch name> 刪除遠程分支
或         
git push origin :<branch name>


複製代碼

文件修改切換分支

  • 分支有更改不能直接切換,能夠提交更改或暫存更改,暫存使用過渡區覆蓋掉工做區
git stash 暫存文件
git stash pop 還原暫存的內容
複製代碼

合併分支

//通常來說是低版本合併高版本,好比master基礎上新建bugfix分支,
//bugfix分支開發完畢以後,切回master分支,git merge bugfix去合併
git merge 分支名 合併分支
複製代碼

解決衝突

  • 遇到衝突時只能手動處理衝突,留下想要的結果

linux命令

rm -rf .git 刪除一個目錄
rm  a.txt 文件名 刪除一個文件
mkdir git_project 建立目錄
cd 路徑名 切換目錄
ls 顯示文件(不顯示隱藏文件)
ls -al 顯示目錄下全部文件
touch 1.txt 建立文件
cat 1.txt 查看文件
vi 1.txt 編輯文件,鍵盤I鍵插入變爲可編輯模式,Esc保存,shift+:wq冒號保存
i 插入模式 esc退出編輯模式  :q!強制退出 :wq保存並退出
pwd print working directory 打印當前工做目錄
echo ‘內容’>1.txt 寫入內容到1.txt
echo ‘內容’>>1.txt 追加內容
複製代碼

本地提交

  • README.md
  • 建立一個.gitigonre 配置文件 忽略提交的文件
  • git不會上傳空文件夾,添加.gitkeep在空文件夾內

關聯遠程倉庫

git romote add orgin 地址 添加到遠程倉庫
複製代碼

刪除關聯

git remote add b 地址  添加了錯誤的關聯,能夠添加
git remote rm b 刪除錯誤的關聯 
複製代碼

推送代碼到遠端

git push origin master
複製代碼

拉取遠端代碼

  • pull = git fetch + git merge
git pull origin master
複製代碼

gh-pages 分支來發布咱們的靜態頁

  • 在項目中建立一個gh-pages的分支
  • 將分支提到線上倉庫上
  • 找到提供給你的網址,在git上settings - github pages 上能夠查看到index.html靜態網頁
touch index.html
git checkout -b gh-pages
git add .
git commit -m "建立一個靜態網頁"
git push origin gh-pages //提交到gh-pages分支上
複製代碼

issues問題

  • 能夠提交對項目,本身的信息

更改別人代碼

  • fork是在當前項目下克隆了一份,若是代碼更新,不會隨之更新

拉取本地

git clone 項目地址 項目別名
複製代碼
  • 默認就是git倉庫並且有origin地址,能夠將代碼提交到本身的倉庫上
  • New pull Request , 推送到被克隆代碼的原項目地址上
  • 只有fork的代碼才能發送pull request請求
相關文章
相關標籤/搜索