常用Git命令

Git是目前使用最普遍的開源分佈式版本控制系統,代碼託管網站Github就是基於Git作版本管理。目前Android Studio也可以使用Git來進行版本控制,用起來很方便。

這裏就來看一看基本的Git命令操作。


更新Git版本

$ git clone git://git.kernel.org/pub/scm/git/git.git

配置Git

  • 添加用戶名與郵箱
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
  • 配置編輯器
$ git config --global core.editor emacs
在Windows下,如果想使用Notepad++,則可以這麼設置:
$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -nosession"
對於64bit 系統,
$ git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -nosession"
  • 確認當前配置
$ git config --list
  • 保存當前用戶驗證信息

在使用Git提交代碼時,每次提交git都會要求輸入 用戶名和密碼,很浪費時間。執行如下git命令,將用戶名和密碼保存到遠端服務器,即可跳過該環節:

$ git config credential.helper store
$ git push http://example.com/repo.git

接着輸入用戶名跟密碼後,執行修改提交都不用再驗證了。


獲取Git代碼倉庫


  • 初始化代碼倉庫
在當前項目文件夾下,執行如下命令,會在該目錄下創建一個子文件夾.git :
$ git init
如果想要將當前的代碼進行版本控制,則需要跟蹤這些文件並做一個初始化的執行操作:
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
這裏把所有.c 文件以及LICENSE文件標記爲跟蹤(tracking)狀態,然後進行commit操作,將其添加到Git的本地工作目錄下。
  • 獲取已有的Git倉庫
$ git clone https://github.com/libgit2/libgit2
將倉庫映射到mylibgit文件夾下:
$ git clone https://github.com/libgit2/libgit2 mylibgit

在倉庫中記錄文件修改


在介紹具體的操作命令之前,先來看一看Git文件各個狀態的生命週期。對於一個工作目錄下的文件而言,主要有兩種狀態:untracked//tracked;tracked 文件在最近的一個Snapshot當中,它們可以是unmodified, modified,staged;而untracked 文件則是那些不在最近Snapshot和不在Staged area中的文件。當你第一次從克隆一個代碼倉庫時,所有文件都處於Tracked並且unmodified(未被修改)。
  • 查看文件狀態
$ git status
  • 跟蹤新創建的文件
$ git add README
  • staging 已修改文件
若某個文件已經處於Tracked,則執行add命令將其添加到Staging area
$ git add CONTRIBUTING.md
  • 查看文件的詳細修改
$ git diff
  • 執行修改
最簡單的命令是 git commit, 但是接着會彈出一個編輯器,需要輸入該修改的簡短描述,因此更爲常用的是如下命令:
$ git commit -m "Story 182: Fix benchmarks for speed"
上述執行命令只是添加了處於Staging 狀態的文件修改,那麼要如何跳過staging,直接執行Tracked文件的修改?
$ git commit -a -m 'added new benchmarks'
  • 移除文件
$ git rm PROJECTS.md
  • 重命名文件
$ git mv file_from file_to
  • 查看修改記錄
$ git log

取消修改


  • Unstage 一個staged文件
$ git reset HEAD CONTRIBUTING.md
  • revert修改
$ git checkout -- CONTRIBUTING.md
  • 取消所有合入修改
$ git reset --merge


遠程操作

  • 查看遠程Git服務器
$ git remote
指定參數-v,可以查看Git服務的URL
$ git remote -v
  • 添加遠程倉庫
指定一個短名字(以後使用該名字來操作遠程倉庫),可以獲取相應的倉庫: git remote add <shortname> <url>:
$ git remote add pb https://github.com/paulboone/ticgit
這樣通過 fetch pb,便可以獲得遠程倉庫的數據:
$ git fetch pb
  • fetch/pull 操作
通過指定遠程倉庫的名字,fetch操作用於獲取遠程倉庫的數據:
$ git fetch origin
如果本地Git倉庫已經設置成Track遠程倉庫,通過pull命令可以將遠程的倉庫的修改合入本地倉庫:
$ git pull
  • 將本地修改push到遠程倉庫
push用於將本地的數據修改合入到遠程的倉庫;在某一時刻,只允許一個用戶執行該操作,若另一個用戶也在執行該操作,則你的push會被
拒絕。這樣,在進行一下此push操作時,你首先需要獲取該用戶的修改(fetch),然後執行push操作

git push [remote-name] [branch-name]

$ git push origin master
  • 獲取遠程倉庫的狀態
如果想要獲取某個遠程倉庫的具體信息,可以使用 git remote show [remote-name] ,
$ git remote show origin
  • 重命名/移除遠程代碼倉庫
$ git remote rename pb paul
這樣遠端的分支從 pb/master 更改爲 paul/master. 如果想要移除某個倉庫,使用 rm命令:
$ git remote rm paul
  • 同步fork 分支
(0)  跟蹤fork分之代碼

$ git remote add upstream <remote-url>


(1)  從fork 的master 分支獲取最新的修改
$ git fetch upstream
(2) 切換到本地 master 分支
$ git checkout master
(3) 將upstream/master 分支的修改合入 本地 master 分支
$ git merge upstream/master

  • 查看所有遠程分支狀態
$ git branch -a
  • 切換本地的工作分支->(提交代碼對應的遠程分支)
$ git checkout -b mybranch origin/remote-branch


如何新建一個Github項目?

  •  在Git 新建一個 repository, 無需添加 README.md
  •  在本地你的項目文件夾下,打開 git bash
  • 初始化 本地 repository
$ git init
  • 跟蹤(Track)本地文件到本地 repository
$ git add .
  • 提交修改到本地 repository
$ git commit -m "initial commit"
  • 添加遠程repository
$ git remote add origin https://github.com/your-name/your-repo.git
  • 將本地修改push到遠程repository
$ git push -u origin master






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