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