git仓库的基本用法
一、簡介
git是一個免費的、開源的分布式版本控制系統,可以快速高效地處理從小型到大型的項目。git很容易學習,而且它的占用資源很小,性能也非常好。它超越了subversion、cvs、perforce和clearcase等scm工具,具有廉價的本地分支、方便的暫存區域和多個工作流等特性。[git 官網]
分布式相比于集中式的最大區別在于開發者可以提交到本地,每個開發者通過克隆(git clone),在本地機器上拷貝一個完整的Git倉庫。Git的功能特性[git-百度百科]:
二、安裝
tortoiseGit是一個開放的git版本控制系統的源客戶端,該軟件功能和git一樣。git是命令行操作模式,tortoiseGit界面化操作模式,不用記git相關命令就可以直接操作。當然安裝git后也可以采用git GUI進行操作。下載鏈接如下:
git:?https://git-scm.com/downloads
tortoisegit:?https://tortoisegit.org/download/
三、啟動Git
安裝好git后,可以在代碼工程文件夾進行鼠標右鍵,選擇Git GUI here 或者Git Bash here分別采用GUI 和 Bash命令窗口打開Git.
例如:
四、常用命令
4.1 創建git代碼倉庫 init
git init # 在當前目錄新建一個Git代碼庫git init [project-name] # 新建一個目錄,將其初始化為Git代碼庫4.2 添加配置文件config
Git 自帶一個?git config?的工具來幫助設置控制 Git 外觀和行為的配置變量。 這些變量存儲在三個不同的位置:
/etc/gitconfig?文件: 包含系統上每一個用戶及他們倉庫的通用配置。 如果使用帶有?--system?選項的?git config?時,它會從此文件讀寫配置變量。
~/.gitconfig?或?~/.config/git/config?文件:只針對當前用戶。 可以傳遞?--global?選項讓 Git 讀寫此文件。
當前使用倉庫的 Git 目錄中的?config?文件(就是?.git/config):針對該倉庫。
每一個級別覆蓋上一級別的配置,所以?.git/config?的配置變量會覆蓋?/etc/gitconfig?中的配置變量。在 Windows 系統中,Git 會查找?$HOME?目錄下(一般情況下是?C:\Users\$USER)的?.gitconfig?文件。 Git 同樣也會尋找?/etc/gitconfig?文件,但只限于 MSys 的根目錄下,即安裝 Git 時所選的目標位置。在用戶主目錄下默認為全局配置,也可以在項目目錄下作為項目配置。非必須。
git config [--global] user.name "[name]" # 設置提交代碼時的用戶信息 e.g. git config --global user.name "jianwang16"git config [--global] user.email "[email address]"# 設置提交代碼時的email e.g. git config --global user.email "jainwang16@foxmail.com"4.3 添加或刪除暫存區代碼add rm
git add [file1] [file2] ... # 添加指定文件到暫存區 e.g. git add a.c b.c git add [dir] # 添加指定目錄到暫存區,包括子目錄 e.g git add pro/codegit add . # 添加當前目錄的所有文件到暫存區git rm [file1] [file2] ... # 刪除工作區文件,并且將這次刪除放入暫存區 e.g. git rm a.c b.cgit rm --cached [file] # 停止跟蹤某文件 e.g. git rm --cached a.cgit mv [file-original] [file-renamed] # 文件改名,并且將這個改名放入暫存區 e.g. git mv a.c amodify.c4.4 提交代碼commit
git commit -m [message] # 提交暫存區到倉庫區 e.g. git commit -m "20180808 v1 新增文件file1"git commit [file1] [file2] ... -m [message] # 提交暫存區的指定文件到倉庫區 e.g. git commit a.c b.c -m "20180808 V2 新增文件a.c b.c"git commit -a # 提交所有直接到倉庫區-a = all git commit -v # 提交時顯示所有diff信息git commit --amend -m [message] # 使用一次新的commit,替代上一次提交4.5 創建分支branch
git branch # 列出所有本地分支git branch -r # 列出所有遠程分支git branch -a # 列出所有本地分支和遠程分支git branch [branch-name] # 新建一個分支,但依然停留在當前分支git checkout -b [branch] # 新建一個分支,并切換到該分支git branch [branch] [commit] # 新建一個分支,指向指定commitgit branch --track [branch] [remote-branch] # 新建一個分支,與指定的遠程分支建立追蹤關系git branch -d [branch-name] # 刪除分支git push origin --delete [branch-name] # 刪除遠程分支 git branch -dr [remote/branch] # 刪除遠程分支4.6 切換分支checkout
git checkout [branch-name] # 切換到指定分支,并更新工作區git checkout - # 切換到上一個分支4.7 合并分支merge
git merge [branch] # 合并指定分支到當前分支git cherry-pick [commit] # 選擇一個commit,合并進當前分支4.8 標簽操作tag
git tag # 列出所有taggit tag [tag] # 新建一個tag在當前commitgit tag [tag] [commit] # 新建一個tag在指定commitgit tag -d [tag] # 刪除本地taggit push origin :refs/tags/[tagName] # 刪除遠程taggit show [tag] # 查看tag信息git push [remote] [tag] # 提交指定taggit push [remote] --tags # 提交所有taggit checkout -b [branch] [tag] # 新建一個分支,指向某個tag4.9 查看Git信息
git status # 顯示有變更的文件git log # 顯示當前分支的版本歷史git log -5 --pretty --oneline # 顯示過去5次提交git shortlog -sn # 顯示所有提交過的用戶git blame [file] # 顯示指定文件是什么人在什么時間修改過git diff # 顯示暫存區和工作區的代碼差異git diff --cached [file] # 顯示暫存區和上一個commit的差異git diff HEAD # 顯示工作區與當前分支最新commit之間的差異git diff [first-branch]...[second-branch] # 顯示兩次提交之間的差異4.10 同步
git fetch [remote] # 下載遠程倉庫git pull [remote] [branch]# 取回遠程倉庫的變化,并與本地分支合并git push [remote] [branch] # 上傳本地指定分支到遠程倉庫git push [remote] --force # 強行推送當前分支到遠程倉庫,即使有沖突 git push [remote] --all # 推送所有分支到遠程倉庫4.11 撤銷提交
git reset [file] # 撤銷修改暫存區的指定文件,與上一次commit保持一致,但工作區不變git reset --hard # 撤銷修改重置暫存區與工作區,與上一次commit保持一致4.12當前操作暫存
git stash # 暫時將未提交的變化移除,稍后再移入 git stash pop # 取出暫存的工程4.13 拉取遠程到本地分支
git pull origin master:master git pull <遠程主機名> <遠程分支名>:<本地分支名> 如拉取遠程的master分支到本地wy分支: git pull origin master:wy 提交 push官網已經提供了很豐富的資料,此處記錄,以便查看。
總結
以上是生活随笔為你收集整理的git仓库的基本用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无人驾驶技术(2)
- 下一篇: 测试技术-易用性测试