git config --global user.name 你的名字
git config --global user.email 你的郵箱
--global 表示所有g(shù)it倉庫都會使用這個配置,為當前用戶設置
2,創(chuàng)建SSH Key
ssh-keygen -t rsa -C "youeamil@explode.com"
git ssh密鑰地址 linux ~/.ssh window 你的用戶目錄下
有 id_rsa(私鑰)和id_rsa.pub(公鑰)兩個文件
復制id_rsa.pub中文件,在github上SSH Keys中,點擊Add SSH key把復制的信息粘貼就可以使用git了
測試命令 ssh git@github.com 也可以 ssh -T git@github.com
3,創(chuàng)建git倉庫
git init
git add 文件名 把文件添加到git倉庫暫存區(qū)
git commit -m "提交說明" 把文件提交到倉庫
commit 是一次性提交,add可以多次添加不同文件,add . 表示添加所有文件
4,鏈接遠程倉庫
克隆并創(chuàng)建倉庫
git clone git@github.com:xiami99/xiami.git 克隆一個本地庫
關(guān)聯(lián)遠程倉庫
git remote add origin git@github.com:xiami99/1234.git
首先 git pull origin master
然后 git push origin master
git push -u origin master
-u參數(shù) git不但會把本地master分支推送到遠程分支,還會把遠程分支和本地分支關(guān)聯(lián)起來
完成合并!
-----修改遠程版本庫地址
git remote set-url origin git@xxx.com.git
5,查看倉庫狀態(tài)和修改
git status 查看git倉庫狀態(tài)
git diff 文件名 查看修改內(nèi)容(一般在未commit前查看)
git diff HEAD -- readme.txt 查看工作區(qū)和版本庫的區(qū)別,也可查看HEAD^版本庫的區(qū)別
6,查看git日志
git log 顯示從最近到最遠的提交日志
git log --pretty-oneline 顯示較少的日志信息
git log --graph 可以查看分支合并圖
git log --graph --pretty=oneline --abbrev-commit 查看分支的合并情況
git log后,請使用qq 退出,否則會見到各種奇葩的不爽
7,撤銷修改
git checkout -- readme.txt 丟棄工作區(qū)的修改
命令中的--很重要,沒有--就變成了創(chuàng)建一個新分支的命令
未提交到暫存區(qū)的文件,一種是撤銷到和版本庫一模一樣的狀態(tài)
提交到暫存區(qū)的文件,撤銷到和暫存區(qū)文件相同的狀態(tài)
git reset HEAD reade.txt 可以把暫存區(qū)的修改撤銷掉,重新放回工作區(qū),和遠程版本庫一樣
8,版本回退
git reset --hard HEAD^ 回退到上一個版本
git reset --hard commit-id 到達commit-id版本
git reflog 用來記錄你的每一次命令
在git中,用HEAD表示當前版本,上一個版本就是HEAD^,上上一個版本就是HEAD^^,第一百個版本HEAD~100
9,刪除文件
git rm test.txt 確認從git倉庫中用命令git rm 刪掉,并且git commit< br >< strong >git rm * -r</ strong > 進入目錄后,刪除所有目錄
如果只是rm test.txt,那么是無法添加到暫存區(qū)和commit的,請使用git rm
10,創(chuàng)建分支
git branch 查看當前分支,前面有*號的是當前分支
git branch -a 查看所有分支
git branch 分支名 創(chuàng)建分支
git checkout -b dev git checkout 切換分支,-b 表示創(chuàng)建并切換
11,合并分支
git merge dev git merge 用于合并指定分支到當前分支
Fast-forward 表示這次合并是快進模式,合并速度很快
12,解決合并分支沖突
提示沖突后,使用git status 查看,找到?jīng)_突文件,然后打開修改
<<<<<<< HEAD
這里是當前分支沖突信息
=============
test分支沖突信息
>>>>>>> test
然后 git add,git commit,最后就可以刪除指定分支了
我的理解是兩個相同文件名的文件合并分支的話只能保存一個文件的內(nèi)容
13,分支管理
git merge --no-ff -m "merge with no-ff" dev
使用--no-ff,在merge時會生成一個新的commit,從分支歷史上就可以看出分支信息
而fast forward合并就看不出來曾經(jīng)做過合并
14,Bug分支
git stash 把當前工作現(xiàn)場儲藏起來,等以后恢復現(xiàn)場后繼續(xù)工作,儲藏前一定要先add到暫存區(qū)
git stash list 用git stash list 查看剛才的工作現(xiàn)場存到哪去了
git stash apply 恢復,但是stash內(nèi)容不刪除,需要使用git stash drop來刪除
git stash pop 恢復的同時把stash內(nèi)容也刪除了
git stash apply stash@{0} 恢復的指定的stash
15,刪除分支
git branch -d dev
git branch -D dev 如果dev分支沒有合并,是不能刪除的,可以使用-D強制刪除,這中情況用在當前分支無作用的情況下
git branch -r -D 刪除遠程分支
16,查看遠程庫信息
git remote 查看遠程庫信息,默認是origin
git remote -v 顯示更詳細的信息,顯示可以抓取和推送的origin地址,沒有推送權(quán)限,就看不到push地址
17,忽視特殊文件
在git根目錄創(chuàng)建.gitignore 文件,然后填寫要忽略的文件,或者忽略后綴名的,最后把.gitignore 提交到git
*.html 忽略后綴為.html 的文件
使用Windows的童鞋注意了,如果你在資源管理器里新建一個.gitignore文件,它會非常弱智地提示你必須輸入文件名,但是在文本編輯器里“保存”或者“另存為”就可以把文件保存為.gitignore了
個人親測很管用的
18,配置別名
git config --global alias.st status 這一行命令,告訴git以后st就表示status
git config --global alias.unstage 'reset HEAD' 撤銷暫存區(qū)的修改,回到當前版本,重要的多個字符用引號
每個倉庫的git配置文件都在.git/config 文件中
當前用戶的git配置文件放在用戶主目錄下的一個隱藏文件 .gitconfig 中
git 支持多種協(xié)議,包括https,但通過ssh支持的原生git協(xié)議速度最快
--轉(zhuǎn)載誠人小李來源:http://www./content-4-116801.html
|
|