git 經常使用命令 -- 菜鳥的筆記


git操做的經常使用命令,不是很全面,可是經常使用,我的開發筆記。 jquery

 

--------------------------------------------------------------------------------------------------- git

---------------------------------------分支操做----------------------------------------------- github

1.察看項目的分支狀況 shell

#進入項目目錄
cd REPOSITORIES/
git branch
# 注意前面的*號表示當前處於那個分支查看遠程分支: git branch -r

2.建立新的分支 app

git branch newbranch

#建立並進入新的分支
git checkout -b newbranch

3.切換到分支 ui

分支切換的時候要注意一個問題:在切換過程當中,上一個分支的修改會帶到新的分支去。也就是說在分支切換的時候會帶上修改。若是要避免這樣狀況,固然就是在切換以前把修改提交(commit)了。 url

git checkout newbranch
#取消對file的修改
git checkout file

4.察看文件修改狀況 spa

git status

            顯示以下的代碼: code

# On branch new
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	deleted:    build.xml
#
no changes added to commit (use "git add" and/or "git commit -a")

能夠看到,他說刪除了build.xml文件。如今是處於new分支 server

5.提交修改

#這樣是提交到當前分支去的
git commit -am "commit message"

6.刪除分支

git -d branch

 

-------------------------------------------------------------------------------------------------------

----------------------------------------------------合併操做--------------------------------------

git merge  --type  branch
#其中的type能夠是下面4種
  • Straight merge 預設的合併模式,會有所有的被合併的 branch commits 記錄加上一個 merge-commit,看線圖會有兩條 Parents 線,並保留全部 commit log。
  • Squash commit 壓縮成只有一個 merge-commit,不會有被合併的 log。SVN 的 merge 便是如此。
  • cherry-pick 只合併指定的 commit
  • rebase 變更 branch 的分支點:找到要合併的兩個 branch 的共同的祖先,然後先只用要被 merge 的 branch 來 commit 一遍,然後再用目前 branch 再 commit 上去。這方式僅適合還沒分享給別人的 local branch,因為等於砍掉重練 commit log。

 合併固然要伴隨這各類各樣的問題拉,其中最重要的一個問題就是衝突的問題拉。衝突事後,會提示

Automatic merge failed; fix conflicts and then commit the result.

衝突的文件會更改成下面的樣子,剩下的時間就得看本身去手動解決這裏的衝突了。

<<<<<<< HEAD
#這裏是如今的代碼
------------------------- 
=======
#這裏是拉過來衝突的代碼
++++++++++++++++++++++++
>>>>>>> master

 

-------------------------------提交-------------------------------------------

-------------------------------------------------------------------------------

git在提交的時候,有時候可能想當前的全部修改,使用命令

#該命令放棄當前 git status 顯示的全部的修改
git reset

#可讓版本回退到commit編號去
git reset --hard [commit編號]

若是隻放棄某一個文件的修改,可使用checkout命令

git checkout file
#可是對於增長的文件,使用這個命令來放棄修改會有問題,它會提示說找不到文件,由於修改以前是沒有該文件的。

git在提交的時候,會忽略一些類型的文件,這寫配置在 項目的.gitignore 文件中,可使用vi編輯這寫內容

vi .gitignore

 

-----------------------------------------遠程操做--------------------------------------

-----------------------------------------------------------------------------------------

檢出倉庫:$ git clone git://github.com/jquery/jquery.git
查看遠程倉庫:$ git remote -v
添加遠程倉庫:$ git remote add [name] [url]
刪除遠程倉庫:$ git remote rm [name]
修改遠程倉庫:$ git remote set-url --push[name][newUrl]
拉取遠程倉庫:$ git pull [remoteName] [localBranchName]
推送遠程倉庫:$ git push [remoteName] [localBranchName]

 

 

-----------------------------------比較操做---------------------------------------

在使用Git的過程當中,咱們有時候須要去對比代碼的不一樣的地方。這時可使用 diff 這的命令

# 對比commit_id1和commit_id2的不一樣地方,並用不一樣顏色區別出來, 注意 commit_id1 必定要比 commit_id2要早提交
git diff --color commit_id1 commit_id2

000

 

--------------保存當前修改狀態-------------------------

有時候有這樣的狀況,當前編輯了一些文件,這時須要作reset、checkout等其餘操做,這時又不想把編輯丟棄,提交了也不完整。這時須要git一個很是人性化的一個命令:git stash ,來保存當前的狀態。

#保存當前編輯
git stash
#恢復編輯
git stash apply


git pull 遠程分支

#checkout的同時在本地同步一個遠程origin上的serverbranch分支
git checkout --track origin/serverbranch
 

--

相關文章
相關標籤/搜索