[Git & GitHub] git 常用命令

1.  新建repository

本地目錄下,在命令行裏新建一個代碼倉庫(repository),且包含一個README.md
touch README.md
git init

將README.md加入到緩存區
git add README.md
(可以用git add --a將所有改動提交到緩存(注意是兩個槓))

提交改變,並且附上提交信息"Initial Commit"
git commit -m "Initial Commit"

 

2.  Push提交

加上一個remote的地址,名叫origin,地址是github上的地址(Create a new repo就會有)
因爲Git是分佈式的,所以可以有多個remote.
git remote add origin https://github.com/XXX(username)/YYYY(projectname).git

將本地內容push到github上的地址上
git push -u origin master
參數-u
用了參數-u之後,以後就可以直接用不帶參數的git pull從之前push到的分支來pull。

此時如果origin的master分支上有一些本地沒有的提交,push會失敗。
所以解決的辦法是, 首先設定本地master的上游分支:
git branch --set-upstream-to=origin/master
然後pull:
git pull --rebase
最後再push:
git push

 

3.  Clone操作

使用git clone+github地址的方法,項目默認只有master分支。git branch也只有master
要看所有的分支:git branch -a 或者是 git branch -r
這時候要新建一個分支,叫做dev,基於遠程的dev分支:
git checkout -b dev origin/dev

 

4.  分支操作

新建好的代碼庫有且僅有一個主分支(master),它是自動建立的。
可以新建分支用於開發(新建一個叫develop的分支,基於master分支):
git branch develop master

切換到這個分支:
git checkout develop
現在可以在這個develop分支上做一些改動,並且提交。
注意:切換分支的時候可以發現,在Windows中的repository文件夾中的文件內容也會實時相應改變,變成當前分支的內容。

 

push方法1:

現在如果想直接Push這個develop分支上的內容到github
如果是新建分支第一次push,會提示:
fatal: The current branch develop has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin develop
輸入這行命令,然後輸入用戶名和密碼,就push成功了。
以後的push就只需要輸入 git push origin

push方法2:

比如新建了一個叫dev的分支,而github網站上還沒有,可以直接:
git push -u origin dev

push方法3:

提交到github的分支有多個,提交時可以用這樣的格式:
git push -u origin local:remote
比如:git push -u origin master:master 表明將本地的master分支(冒號前)push到github的master分支(冒號後)。
如果左邊不寫爲空,將會刪除遠程的右邊分支。

 

5.  創建分支的另一種方法

新建一個分支develop2,同時切換到這個分支
用命令: git checkout -b develop2 develop

 

6.  刪除分支

git branch #查看所有的分支
git branch -d develop2 #將develop2分支刪除
強制刪本地:
git branch -D develop2 #強制刪除develop2分支
刪除遠程分支:
git push origin --delete 分支名(remotes/origin/分支名)

 

7.  加Tag

git tag tagname develop
git tag中的兩個參數,一個是標籤名稱,另一個是希望打標籤的點develop分支的末梢。

 

8.  合併分支

git checkout master #先轉到主分支
git merge --no-ff develop #然後把develop分支merge過來
參數:
不用參數的默認情況下,是執行快進式合併。
使用參數--no-ff,會執行正常合併,在master分支上生成一個新節點。
merge的時候如果遇到衝突,就手動解決,然後重新add,commit即可。

 

9.  合併多個commit

git log --pretty=oneline #查看log
git rebase -i HEAD~3 #從HEAD版本開始往過去數前3個版本(打算合併3個commit)
或者指名要合併的版本之前的版本號
git rebase -i 3a4226b #3a4226b(第4個版本)這個版本是不參與合併的,只合並該版本的之前的3個版本
執行了rebase命令之後,會彈出一個窗口,前幾行以pick開頭 + 版本號 + commit信息。選擇所要合併的commit 前面的 pick 改爲 s
之後按Esc鍵,在輸出 :wq 保存退出。
如果有衝突:
git add .
git rebase --continue
如果你想放棄這次壓縮的話,執行以下命令:
git rebase --abort

 

10.  分支與master保持同步

git checkout master
git pull
git checkout develop
git merge master

 

11.  fork倉庫與遠程倉庫保持同步

git fetch upstream
git checkout master
git merge upstream/master
另一種方法直接利用pull(fetch+merge)保持同步 git pull upstream master
執行完後push到自己倉庫
git push origin master

 

本文原創由`bluetata`發佈於blog.csdn.net、轉載請務必註明出處。

 

Flag Counter

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章