git學習三:git常用命令

備註:

1.第一次使用Git必須註冊git賬號,2種方式註冊賬號,一種是用git命令,另一種是登錄github官網註冊。

2.第一次本地工程上傳至github上必須註冊SSH,因爲推送到遠程默認使用的是SSH形式

3.從github上抓取遠程工程有2種方式,一種是SSH形式另一種是https形式,默認情況下使用SSH形式,而且SSH形式比https形式快,具體實現方式如下:

SSH形式爲:git clone [email protected]:xx/xxx.git  (xx表示你github登錄名,xxx.git表示該賬號下某個工程)

https形式爲:git clone https://github.com/xx/xxx.git  (xx表示你github登錄名,xxx.git表示該賬號下某個工程)


以下爲初學者第一次使用git常用命令:

1.初始化配置(常用)

官網下載git並安裝,右擊“Git Bash Here” 進行git賬號註冊:

git config --global user.name "you name"  註冊git用戶名

git config --global user.email "[email protected]"  註冊git郵箱

git config --list   查看git配置

或者登錄github官網,註冊git賬號

把本地工程上傳到遠程github上則先創建SSH key,該方式提交代碼不需要輸入用戶名和密碼。github允許添加多個key,若是你自己筆記本操作,公司電腦操作,則需把每臺電腦的key添加到github上,那麼每臺電腦就可以往github上傳工程。

 ssh-keygen -t rsa -C "[email protected]"

把生成的公鑰複製到github上,具體操作參考:http://blog.csdn.net/u014079773/article/details/49555989


2.創建工程並上傳至github遠程服務(重點)

第一次創建工程並提交至遠程服務首先登錄github官網創建遠程倉庫,點擊“Create A Repository”創建一個項目,點擊“New Repository”,然後“Project Name”輸入“learngit”,“Description”填寫描述, 在本地創建一個Github文件夾,在裏面再創建一個learngit文件夾,並將項目文件放進去,在“learngit”文件夾上右擊“Git bash”出現命令框

git init          初始化倉庫learngit

git add .       添加所有文件(add與“.”之間有空格,否則不識別的語法)

git commit -m 'version 1.2'           提交修改文件

git remote add origin [email protected]:somenone/learngit.git      提交遠程倉庫(用SSH的形式,關聯一個遠程倉庫)

git push -u origin master       推送遠程倉庫

備註:由於遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令。

之後執行就是 git push origin master


3.修改本地文件上傳至遠程倉庫(重點)

修改好本地文件後在“learngit”文件夾上右擊“Git Bash Here”出現命令框

如果添加了內容則先要git add .

git commit -m "version 1.2"   提交修改

git commit -a -m "version1.2"   提交所有修改

git push origin master


4.文件管理

git add filename                         修改文件提交到本地暫存區

git add .                                        修改所有文件提交到本地暫存區(注意add與“.”之間有個空格)

git commit -m "message"        提交修改

git commit -a -m "message"    提交所有修改

git checkout head readme.txt todo.txt    撤銷1,2文件修改

git checkout head .                    撤銷所有文件修改

git status                                     查看當前文件狀態

git rm filename                           刪除文件

git diff filename                          查看修改文件具體內容即比較當前文件與暫存區文件差異

git reset filename                      從暫存區恢復文件

git reset --hard HEAD^            恢復最近一次提交過的狀態,即放棄上次提交後的所有本次修改


5.倉庫管理

git init                                                                                                  初始化倉庫

git clone [email protected]:someone/xxx.git                                  克隆遠程倉庫(SSH形式)

git clone https://github.com/someone/xx.git                                克隆遠程倉庫(https形式)

git remote add origin [email protected]:someone/xxx.git             添加到到遠程倉庫master(SSH形式)

git push origin master                                                                      推送遠程倉庫

git push -u origin dev                                                                       首次將本地dev分支提交到遠程dev分支,並且track

git  pull  https://github.com/someone/xxx.git                                 更新遠程倉庫(https形式,要先選中倉庫)

git pull [email protected]:someone/xxx.git                                      更新遠程倉庫(SSH形式,要先選中倉庫)

git remote -v  查看遠程倉庫

git remote add origin [email protected]:someone/xx.git 添加遠程倉庫

git remote rm name  刪除遠程倉庫

$ git remote set-url --push origin [newUrl]  修改遠程倉庫


6.分支管理

git branch dev                                                                 創建一個分支dev 
git chekcout dev                                                             切換工作目錄到dev
git chekcout –b dev                                                        創建dev分支並切換到dev

git branch                                                                         查看分支(當前分支前面會有一個"*")

git branch -a                                                                     查看所有分支

git merge dev                                                                  合併dev分支到當前分支master(必須切換到當前master分支纔可以合併分支,快速合併)
git branch –d dev                                                            刪除dev分支(合併完成後沒有出現衝突刪除分支) 

git branch -D dev                                                            強制刪除爲合併的分支dev
git checkout –b dev origin/dev                                     建立本地的dev分支追蹤遠程倉庫的dev分支(本地分支最後與遠程分支一致)

git merge  --no-ff -m "message" dev                          合併dev分支到當前master分支(禁用"Fast-Forward"合並可以生成merge提交)  

git merge origin/master                                                將遠程主分支合併到本地當前分支

git merge origin/dev                                                      將遠程dev分支合併到本地dev分支

git push                                                                           推送所有分支  
git push origin master                                                  推送本地主分支推到遠程主分支  
git push  origin dev                                                        推送本地dev分支到遠程dev分支


7.歷史記錄管理(常用)

git log                                         查看所有歷史記錄(從最近到最遠提交日誌,顯示詳細信息)

git log filename                        查看指定文件每次提交記錄

git reflog                                    記錄每一次提交記錄(即查看所有分支所有記錄)

git log --graph                           查看分支合併情況


8.暫存管理

git stash                     暫存當前分支

git stash list               查看暫存分支

git stash apply           恢復暫存區但不刪除內容

git stash drop            刪除暫存區

git stash pop             恢復暫存區並刪除內容


9.標籤管理

git tag V1.0                                                           創建標籤

git tag                                                                    查看標籤

git show V1.0                                                      查看標籤信息

git tag -a V1.0 -m "version is 1.0"                    創建帶有指定說明標籤(-a指定標籤名 -m指定說明文字)

git  tag -d V1.0                                                     刪除標籤

git push origin V1.0                                            推送某個標籤到遠程

git push origin --tags                                         推送所有標籤到遠程

git push origin:refs/tags/V1.0                           刪除遠程標籤


10.忽略一些文件、文件夾不提交

在倉庫根目錄下創建名稱爲“.gitignore”的文件,寫入不需要的文件夾名或文件,每個元素佔一行即可,如

target

bin

*.db


總結:

Git 是一個很強大的分佈式版本管理工具,它不但適用於管理大型開源軟件的源代碼也可以管理私人的文檔和源代碼。

git提交倉庫在自己本地,每個人都可以擁有自己的本地倉庫,互不干擾,最後提交到遠程倉庫。

git config --global user.name "you name"

git config --gloabl user.email "[email protected]"

第一次使用git時,首先要進行用戶配置,這是爲了擁有git賬號,可以提交到遠程倉庫,然後在遠程倉庫github上註冊自己的賬號,那麼就可以在github上管理我們的項目。

git init:初始化本地倉庫,即是本地已經創建好的項目,然後執行該命令使得該項目變成git可管理的版本倉庫。

git add remote name url :若是你希望將本地初始化好的倉庫提交到遠程倉庫,那麼在遠程服務器上創建倉庫,進行本地倉庫與遠程倉庫關聯

git add:是將當前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示記入了版本歷史中,這也是提交之前所需要執行的一步,例如'git add app/model/user.rb'就會增加app/model/user.rb文件到Git的索引中,該功能類似於SVN的add

git rm:從當前的工作空間中和索引中刪除文件,例如'git rm app/model/user.rb',該功能類似於SVN的rm、del

git commit:提交當前工作空間的修改內容,類似於SVN的commit命令,例如'git commit -m story #3, add user model',提交的時候必須用-m來輸入一條提交信息,該功能類似於SVN的commit

git push:將本地commit的代碼推送到遠程版本庫中,例如'git push origin master'就會將本地的代碼更新到名爲orgin的遠程版本庫中的master分支上

git pull:從其他的版本庫(既可以是遠程的也可以是本地的)將代碼更新到本地,例如:'git pull origin master'就是將origin這個版本庫的代碼更新到本地的master主枝,該功能類似於SVN的update

git log:查看歷史日誌,該功能類似於SVN的log

git reflog查看所有分支的所有記錄包括commit和reset的操作

git branch:對分支的增、刪、查等操作,例如'git branch new_branch'會從當前的工作版本創建一個叫做new_branch的新分支,'git branch -D new_branch'就會強制刪除叫做new_branch的分支,'git branch'就會列出本地所有的分支

git checkout:Git的checkout有兩個作用,其一是在不同的branch之間進行切換,例如'git checkout new_branch'就會切換到new_branch的分支上去;另一個功能是還原代碼的作用,例如'git checkout app/model/user.rb'就會將user.rb文件從上一個已提交的版本中更新回來,未提交的內容全部會回滾
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章