一、常見的工作流程
-
初始化
$ git init
在當前文件夾下生成 .git 文件夾,git 初始化版本管理。
-
克隆項目到本地
$ git clone [project address]
相當于 SVN 的 checkout 命令
-
配置個人信息
$ git config --global user.name "your username"
$ git config --global user.email "your email address"
添加 --global 屬性是設置全局屬性,及電腦中其他的項目管理的賬號也郵箱也會是這個。去掉這個屬性,將只作用于當前項目。而全局屬性的用戶名不會影響該項目。
-
添加單個文件到暫存區
$ git add <file>
eg : 添加文件 a.java 到暫存區
$ git add a.java
-
添加所有文件到暫存區
$ git add .
-
查看當前狀態
$ git status
該命令可以查看有什么文件做了修改,還有什么文件沒有被 git 追蹤到,還有暫存區目前的狀態,是否需要提交到版本庫。
-
提交暫存區文件到版本庫
$ git commit -m "commit message"
提交暫存區內的東西。提交時,必須要寫清楚此次提交所做的事情。在執行該命令前,先查看下當前狀態,確認是否有新建的文件或修改過文件還沒
git add。$ git commit -am "commit message"
該命令將 add 和 commit 做了合并操作。
- 提交本地版本庫到 git 服務器,如 github
把版本庫內的更新推送到服務器。$ git push
- 拉取服務器的更新
$ git pull
二、git 特殊功能
-
撤銷某個文件的提交 <慎用>
$ git reset HEAD <file>
此時該文件會回到之前已修改但未暫存的狀態。
回到撤銷之前的狀態:
$ git checkout -- <file>
該文件會回到撤銷之前的狀態,但是修改的內容會丟失。
-
查看本地分支
$ git branch
命令行會顯示一個分支名列表,有 * 的表示當前所在分支
-
創建分支
$ git branch <branch name>
-
切換分支
$ git checkout <branch name>
-
創建分支并切換到新分支
$ git checkout -b <branch name>
-
刪除分支
$ git branch -d <branch name>
執行該命令前須切換到其他分支才能刪除該分支。
-
合并分支
$ git merge <branch name>
合并其他分支上的東西到當前分支上
三、 git 遠程庫相關操作
-
查看遠程倉庫
$ git remote
一般 clone 下來的倉庫遠程倉庫為 origin
-
拉取遠程倉庫的數據到本地
$ git fetch <remote name> <branch name>
拉取遠程倉庫的數據,但是不會合并到本地工作分支。
-
$ git fetch
拉取遠程倉庫 origin 的主分支 master上的內容 -
$ git fetch origin dev
拉取遠程倉庫 origin 的主分支 dev上的內容
-
-
拉去遠程倉庫數據到本地 并合并數據
$ git pull <remote name>
如果只有一個遠程倉庫,則 remote name 可以省略,默認拉取該遠程倉庫數據。
-
推送數據到遠程倉庫
$ git push <remote name> <remote branch name>
推送之前須拉取遠程倉庫在此次提交之前別人已推送的提交數據,否則會推送失敗。
-
推送本地分支到遠程倉庫
$ git push --set-upstream <remote name> <branch name> $ git push -u <remote name> <branch name>
這兩條命令等價
eg:推送本地分支 release 到遠程倉庫 origin上$ git push --set-upstream origin release
-
查看遠程倉庫信息
$ git remote show <remote name>
這些信息會顯示 遠程倉庫名稱、分支信息,并有相應的命令提示可以做什么操作
-
刪除遠程倉庫和重命名
$ git remote rename <old name> <new name>
$ git remote rm <remote name>