[toc]git
你下面
的這些操做,絕大多數都要先進入相關的本地倉庫文件夾才能夠。github
cd/d F:\工做相關\2020年02月27日新項目
複製代碼
git config
命令的做用是配置git的相關信息。shell
配置全局的用戶名和郵箱,mac下可經過終端輸入命令cat ~/.gitconfig
查看配置信息。緩存
git config --global user.name "name"
git config --global user.email "eamil"
針對單個倉庫配置用戶名和郵箱,mac下可經過終端進入到項目的根目錄中,而後輸入命令cat .git/config
查看配置信息。bash
git config user.name "name"
git config user.email "eamil"
查看git全部配置信息:git config --list
服務器
查看配置的用戶名:git config user.name
app
查看配置的用戶郵箱:git config user.email
ssh
定義命令別名:ide
git config --global alias.st status
:則git status
可用git st
代替git config --global alias.co checkout
:則git checkout
可用git co
代替git config --global alias.ci commit
:則git commit
可用git ci
代替git config --global alias.br branch
:則git branch
可用git br
代替也能夠自定義其餘命令的別名,主要合理且方便操做便可。fetch
git init
命令的做用是在當前目錄中初始化倉庫,而且建立一個名爲.git
的子目錄,該目錄含有你初始化的Git
倉庫中全部的必須文件。
git status
命令的做用是顯示文件狀態,紅色表示工做目錄的文件被修改但尚未提交到暫存區,綠色表示已經提交到暫存區。
以極簡的方式顯示文件狀態:
git status -s
複製代碼
git add fileName
把文件添加進來進行管理已經被修改但還沒提交到暫存區的文件,能夠經過命令git checkout -- fileName
撤銷更改。
git add
命令的做用是將文件從工做目錄添加至暫存區
git add .
git add -u
或git add --update
,它不會處理那些沒有被跟蹤的文件git add -A
或git add --all
注意:git add .
和git add -A
在2.x
版本中提交類型方面功能相同,但會由於所在目錄不一樣產生差別:
git add .
只會提交當前目錄或者子目錄下相應文件。git add -A
不管在哪一個目錄執行都會提交相應文件。已經被提交到暫存區的文件,能夠經過命令git reset HEAD -- fileName
撤銷提交。
git commit
命令的做用是將暫存區的修改提交到本地倉庫,同時會生成一個commmit-id
。
將暫存區的修改提交到本地倉庫:git commit -m "message"
,"message"是本次提交的簡述內容,好比添加新功能或修復bug等
將本地工做區中修改後還未使用
git add .
複製代碼
命令添加到暫存區中的文件也提交到本地倉庫:
git commit –a –m "message"
複製代碼
該命令至關於如下兩條命令:
git add .
:把全部修改的信息添加到暫存區git add -m "message"
:將暫存區的修改提交到本地倉庫git commit --amend
git pull
命令的做用是獲取遠程主機某個分支的更新,再與本地指定分支合併。git pull <遠程主機名><遠程分支名>:<本地分支名>
取回遠程主機上的dev分支與本地的master分支合併:
git pull origin dev:master
複製代碼
取回遠程主機上的dev分支與當前分支合併:
git pull origin dev
複製代碼
該命令至關於如下兩條命令:
git fetch origin
:獲取遠程主機上全部分支的更新,也能夠用git fetch origin dev
表示獲取遠程主機上dev分支的更新git merge origin/dev
:當前分支合併dev分支注意:經過git fetch
所取回的更新,在本地主機上須要用「遠程主機名/分支名」的形式讀取,好比origin主機的master分支,就須要用origin/master
來讀取。
git fetch
命令的做用是將遠程主機上全部分支的更新取回本地,並記錄在.git/FETCH_HEAD
中
git fetch origin
git fetch origin master:test
git fetch -p
git push
命令的做用是將本地分支的更新推送到遠程主機上。
master
分支的更新推送到遠程主機上:git push origin master
git push origin --delete dev
git branch
命令的做用主要是作分支管理操做。
git branch
git branch -a
git branch test
git branch -m test dev
git branch -d dev
git branch -D dev
以上命令都是針對本地倉庫操做,不影響遠程倉庫。
git checkout
命令最經常使用的情形是建立和切換分支以及撤銷工做區的修改。
切換到tag爲v1.0.0時對應的代碼:git checkout v1.0.0
在tag爲v1.0.0的基礎上建立分支名爲test的分支:
git checkout -b test v1.0.0
複製代碼
。該命令至關於如下兩條命令:
git branch test v1.0.0
:在v1.0.0的基礎上建立分支testgit checkout v1.0.0
:切換到分支test把當前目錄全部修改的文件從HEAD中移除而且把它恢復成未修改時的樣子:git checkout .
撤銷工做目錄中文件的修改(文件有改動但還未git add
):git checkout -- fileName
,或者撤銷全部修改使用git checkout .
git tag
命令主要是對項目標籤進行管理。
git tag
git tag <標籤的定義>
git tag <標籤訂義>
git log
命令的做用是查看歷史提交記錄
git log
git log --oneline
git log --author="name"
git log --graph
git log -n
git log --after="2018-10-1"
,包含2018年10月1號的記錄git log --after="2018-10-1
,包含2018年10月1號的記錄git log --after="2018-10-1" --before="2018-10-7"
git reset
命令的做用是撤銷暫存區的修改或本地倉庫的提交。
撤銷已經提交到暫存區的文件(已經git add
但還未git commit
):
git reset HEAD fileName
或git reset --mixed HEAD fileName
git reset HEAD .
或git reset --mixed HEAD .
對已經提交到本地倉庫作撤銷(已經git commit
但還未git push
):
git reset --soft commit-id
或git reset --soft HEAD~1
git reset --mixed commit-id
或git reset --mixed HEAD~1
git reset --hard commit-id
或git reset --hard HEAD~1
注意:commit-id
可經過git log
查看(取前六位便可),HEAD~1
表示前一次提交(能夠此類推)。
git remote
命令的做用主要是管理遠程倉庫。
git remote
git remote -v
git remote add origin <遠程倉庫地址>
git remote remove <遠程倉庫名稱>
git remote set-url origin <新的遠程倉庫地址>
git remote update origin --prune
git merge
命令的做用主要是分支的合併。
1:若是當前是master分支,須要合併dev分支:git merge dev
git stash
命令的做用主要若是當前分支所作的修改你還不想提交,但又須要切換到其餘分支去查看,就可使用git stash
保存當前的修改。
git stash
git stash list
git stash pop <歷史進度id>
,git stash apply <歷史進度id>
,若是直接使用git stash
默認是使用最近的保存git stash drop <歷史進度id>
git stash clear
.gitignore
文件的做用是忽略那些不必的提交,好比系統環境或程序運行時產生的文件。GitHub爲咱們提供了各個語言的gitignore合集github/gitignore,其中也包括Android.gitignore。
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/gybguohao/test.git
git push -u origin master
mac終端查看是否已經存在SSH密鑰:cd ~/.ssh
,若是沒有密鑰則不會有此文件夾。
生成新的祕鑰, 命令以下 ssh-keygen -t rsa -C "eamil"
你須要把郵件地址換成你本身的郵件地址,而後一路回車,使用默認值便可,由於這個個Key僅僅用於簡單的服務,因此也無需設置密碼。
完成後會有以下顯示
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/gybguohao/.ssh/id_rsa。
Your public key has been saved in /Users/gybguohao/.ssh/id_rsa.pub。
The key fingerprint is:
SHA256:5V6ZCQNS/3bVdl0GjGgQpWMFLazxTslnKbW2B1mbC+E eamil
複製代碼
若是服務器端須要公鑰, 直接複製.ssh目錄下的id_rsa.pub內容便可。