1. 程式人生 > >版本管理工具使用總結(git,svn,hg)

版本管理工具使用總結(git,svn,hg)

git

一、git常用命令

1提交程式碼
git add . //把修改的或增加的檔案新增到本地庫裡
git commit -am “說明性文字”
git pull //從伺服器上更新程式碼,避免覆蓋別人的程式碼
git push //把自己修改的上傳到伺服器

2檢視狀態
git status

3解決衝突
當自己和別人同時修改了工程檔案*.xcodeproj,在執行git pull時會提示發生衝突。解決的辦法為:
進工程目錄,右擊*.xcodeproj –>顯示包內容,出現project.pbxproj檔案、project.xcworkspace檔案和xcuserdata檔案jia;
雙擊開啟project.pbxproj,將此檔案裡面所有保含衝突標誌的行全部整行刪掉
(衝突標誌有3種:>>>>>>>>, ========和<<<<<<<<,單擊滑鼠左鍵3次即可選中整行);
開啟工程,執行以下3個命令:
git commit -am “solute confilcts”
git pull (這是簡寫,完整的命令為git pull origin master)
git push (這是簡寫,完整的命令為git push origin master)

4放棄本地修改
git reset –hard

5 分支
1)建立分支
git checkout -b haishu
2)切換分支
git checkout haishu
git checkout master
3)檢視本地分支
git branch
4)檢視所有分支
git branch -a
5)刪除本地分支
git branch -d haishu(此命令不能刪除當前分支,要先切換到其他分支,比如git checkout master)
6)合併分支,比如haishu合併到master
git checkout master
git pull(完整命令為git pull origin master)
git merge haishu
git push(完整命令為git push origin master)
7)檢視遠端分支
git branch -r
8)新建與遠端分支相對應的本地分支
git checkout -b v2.9 origin/v2.9
這裡的origin v2.9為遠端分支,後面的v2.9為相對應的本地分支

二、git 解決 .DS_Store衝突

1//進根目錄 cd
2//刪除所有.DS_Store
find . -depth -name ‘.DS_Store’ -exec git-rm —cached ‘{}’ \; -print
3//在.gitignore新增忽略檔案
vim .gitignore 新增一行 .DS_Store 並儲存
4// pull確保提交的程式碼沒有 .DS_Store 然後提交

三、回朔版本

1.git pull 拉取遠端程式碼
2.reset 歷史版本
• HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset –hard commit_id。
• 穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。
• 要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。

四、git rebase多人開發

1.git checkout Dev/git pull
2.git checkout yourDev
3.git rebase/git add ./git commit
4.git checkout Dev/git merge yourDev

五、 分支

1)建立分支
git checkout -b qunye
2)切換分支
git checkout qunye
git checkout master
3)檢視分支
git branch
4)檢視所有分支
git branch -a
5)刪除分支
git branch -D haishu(此命令不能刪除當前分支,要先切換到其他分支,比如git checkout master)
6)合併分支,比如haishu合併到master
git checkout master
git pull
git merge qunye
git push

六、 切換

命令:git stash
1).使用git stash儲存當前的工作現場,那麼就可以切換到其他分支進行工作,或者在當前分支上完成其他緊急的工作,比如修訂一個bug測試提交。
2).如果一個使用了一個git stash,切換到一個分支,且在該分支上的工作未完成也需要儲存它的工作現場。再使用git stash。那麼stash 佇列中就有了兩個工作現場。
3).可以使用git stash list。檢視stash佇列。
4).如果在一個分支上想要恢復某一個工作現場怎麼辦:先用git stash list檢視stash佇列。確定要恢復哪個工作現場到當前分支。然後用git stash pop [email protected]{num}。num 就是你要恢復的工作現場的編號。
5).如果想要清空stash佇列則使用git stash clear。
6).同時注意使用git stash pop命令是恢復stash佇列中的[email protected]{0}即最上層的那個工作現場。而且使用pop命令恢復的工作現場,其對應的stash 在佇列中刪除。使用git stash apply [email protected]{num}方法除了不在stash佇列刪除外其他和git stash pop 完全一樣。
7)檢視遠端分支
git branch -r
8)新建與遠端分支相對應的本地分支
git checkout -b v2.9 origin/v2.9
這裡的origin v2.9為遠端分支,後面的v2.9為相對應的本地分支

七、tag 操作

git tag //檢視版本標籤
git tag -a 1.0.0 -m ‘1.0.0版本完成’ //打完tag 還是處於本地
git push –tags //本地所有tags都提交
git push origin –delete tag 1.0.4//刪除遠端tag謹慎使用

八、 常見問題解決(提交失敗、版本回溯)

1)提交失敗

樣例:
zhuqunyedeMacBook-Pro:statistical-ios zhuqunye$ git push

Counting objects: 311, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (297/297), done.

error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large

fatal: The remote end hung up unexpectedly

Writing objects: 100% (311/311), 81.70 MiB | 6.03 MiB/s, done.

Total 311 (delta 42), reused 0 (delta 0)

fatal: The remote end hung up unexpectedly

增加祕鑰後提交

zhuqunyedeMacBook-Pro:statistical-ios zhuqunye$ ls ~/.ssh/

github_rsagithub_rsa.pubid_rsaid_rsa.pubknown_hosts

zhuqunyedeMacBook-Pro:statistical-ios zhuqunye$ cat ~/.ssh/github_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCh+4AQL1t4mnqYb/27EZMZQdDZchbB8Fxw0N4CVorqsE5Hc5Lxrx2i7/NqPZoFOZ2yLQUEgZ6p9iTaIJEomeRNpqWO8BD/00JN9NW2VPi6kxspNkv9gXvVE3caa0NqEhekWXAWILtLwv502QXXUL9Giy++3DQirRin7yUH/gAXi/HlWJo8hGMuy1VY02rrMcoz1Ptnau9/5eMPU5j6bZ9l0f34wKH3e6pOHq882QMmYuW5m5OculANq3UlaTw0m27woUmEfyp64q91zluJwVvYPOR7C/p9x0lru5S4e+9ZtwBlPnj7tApGhxvHFVNF8niThKxTZ8iwQejWME2UQWwL [email protected]

zhuqunyedeMacBook-Pro:statistical-ios zhuqunye$ cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCW5GedK3Ys/DTrQ00gDiKG+Z+r/VPHcE1eLhB20WJnVjhhuOtAXomywGaTIuudafiKhCbKd4kmh0NuUaKQonBD8ljWoDYhLGXuIReT+NEUZv1U39sYv7LhirKMdUK/onN83sx7IJmRSGhAAMCsY5FEXsx+9mO8bSfap70gpyTqzQuY1UQIJxkl2UzP8MS4S29iZYFAZBL9oovkKYlFwHIIjsfpggFSMwhvjxtm6d4K83guP1R4kR7+YUepM/jUuf1ETD2UbqmthEsYfpAmhFAiDkkrTusZHeeBcUqGCYIkRVAfvcsYlYlul8DoMMLKH/7XqUToTR4dyuAdAl8dBnbT [email protected]

zhuqunyedeMacBook-Pro:statistical-ios zhuqunye$ git push

2)、回朔版本

  1. git pull 拉取遠端程式碼

  2. reset 歷史版本

HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset –hard commit_id。
穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。
要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。

3)、檢視更改當前git使用者

檢視使用者名稱和郵箱地址:

$ git config user.name

$ git config user.email

修改使用者名稱和郵箱地址:

$ git config –global user.name “username”

$ git config –global user.email “email”

svn

下載伺服器程式碼:svn co https://IP:Port/pathOfProject/trunk theUrlOfCurrentUser
更新:svn up
提交:svn commit -m “do something”
增加檔案:svn add filename1 filename2…

解決 Xcode 4 刪除檔案後 missing file 警告

hg

安裝

sudo easy_install mercurial
然後輸入管理員密碼,自動下載並安裝

hg 配置

進入
vim ~/.hgrc
按i進入編輯狀態,輸入下面的資訊,把賬號給成自己的
按esc 然後輸入 :wq儲存並退出編輯

*[ui]
username = yourUsername
merge = kdiff3
[auth]
repo.prefix = https://hgcode.yonyouup.cn/
repo.username = yourUsername
repo.password = yourPassword
[hostfingerprints]
hgcode.yonyouup.cn = F0:2B:9B:39:2F:06:82:D1:F8:FF:A2:64:82:A6:78:B4:66:A1:C9:61
[tortoisehg]
vdiff = kdiff3
[extensions]
fetch=
hgext.extdiff =
[extdiff]
cmd.kdiff3 =
[merge-tools]

Override stock tool location

kdiff3.executable = /Applications/kdiff3.app/Contents/MacOS/kdiff3

Specify command line

kdiff3.args = baselocal otherooutput

Give higher priority

kdiff3.priority = 1*

點esc 冒號wq

常見錯誤:

如果多修改,然後就可以用hg更新原始碼了

例如:

hg branch 顯示當前使用分支

hg branch liujing_dev_email

hg ci -m”new branch liujing_dev_email”

hg push —-new-branch

常用命令

hg merge zjb_dev 將分支合併到本地

hg merge release1.0.3

hg ci -m “merge from zjb_dev” 提交合並結果

hg push 推到伺服器上

hg revert file.xxx 恢復伺服器上的檔案到本地,覆蓋掉本地檔案

hg revert —all 用伺服器上的版本完全覆蓋本地

hg st 檢視程式碼更改狀態

hg diif 檢視程式碼變更詳情

提交流程

hg add

hg ci -m “使用者設定修改”

hg st

hg push

重建分支

hg branch release1.0.3_wyz_yijianfankui release1.0.3_wyz_Email

hg push —-new-branch

提交

hg ci -m ‘release 1.0.3 branch’

hg revert + 路徑 回覆原狀不提交

hg remove tesn/image/首頁/.DS_Store -f 刪除檔案

rm + 路徑 刪除本地檔案

rm tesn/controllers/UIMainNavigationViewController.m.orig

注意事件

提交之前先ci -m”update“

拉取之後合併:hg merge some_dev_version

合併之後檢視:hg st

再提交:hg ci -m”mergeFrom zjb_dev_1.0.3”

再檢視:hg st

最後push到伺服器: hg push

成功之後提示類似於:r123:9aa725d1367c

出現! 表示之前的檔案已經刪除 hg addremove之後就可以

分支的合併,要小心從default主分支建立

合併分支

根據 Hg 的設計特徵, Hg 似乎是不推崇建立大量分支來作為開發手段,其中一個很重要的特性就是沒有刪除分支這一功能!所有分支只能關閉,或者任由其存在。

如果實在要合併某一個以後不再使用的開發分支,有一個變通的方式。簡單的說就是:

update 到需要關閉的分支 needCloseBranch
關閉 needCloseBranch 分支
update 到需要合併後保留的分支 default
合併 needCloseBranch 到 default
最終 needCloseBranch 這個分支並不會真正消失,不過在預設情況(不顯示已關閉分支)下是看不到的

以下是命令列的範例(支援 hg 2.x 版本)

hg update needCloseBranch

hg commit –close-branch #關閉功能在 TortoiseHg 是沒有的,只能在命令列操作

hg update default

hg merge needCloseBranch

相關推薦

版本管理工具使用總結git,svn,hg

git 一、git常用命令 1提交程式碼 git add . //把修改的或增加的檔案新增到本地庫裡 git commit -am “說明性文字” git pull //從伺服器上更新程式碼,避免覆蓋別人的程式碼

Android常用逆向工具總結未完待續

寫在前面的話 突然覺得我好無聊,寫這個有種浪費生命的感覺有沒有,不過專案結束的時候這個還是要寫的,以後寫還不如現在趁現在,趁著現在連結就在身邊直接寫了。 1.apktool的安裝和使用 1.1 apktool的安裝 上面寫的很詳細了,你因為

版本管理工具gitsvn簡介

clear 碼代碼 check fig 常用指令 ons 自己的 開發 1.0 版本管理工具 版本管理工具簡介 常見版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 g

版本管理工具git的使用總結

在git安裝好之後,還需要做註冊一個github賬號,作為遠端倉庫,之後需要做一些配置: 這裡一跳而過,不多說,完成之後,我們就可以使用git了。 git分割槽 工作區:就是我們開啟資料夾所能看到的內容,比如windows系統盤下面的某個資料夾,就可

Android Studio之版本管理工具Git 圖文教程

目前業界主流的版本管理工具主要是 svn/git。svn是1種集中式的程式碼管理工具,而git是1種散佈式的程式碼管理工具,廣受極客的愛好。而基於git的github更是全宇宙碼農的提高逼格,深究技術的必備神器。下面介紹,如何將Android Studio中的工程託管到g

Svn Git hooks scripts(版本管理工具的掛鉤指令碼)

Svn Git hooks scripts 簡介       SVN全名Subversion,是一款集中式的程式碼版本控制系統,早期Linux/eCos開發時如果對多人協同的要求不是很高的話,使用的是這個管理軟體還是比較方便的。 Git 是一款分散式版本控制系統(Dis

Eclipse中使用SVNGit版本管理工具

  在Eclipse裡下載Subclipse外掛(此方法也適用於MyEclipse),用來使用SVN或者Git對專案進行版本管理。 方法一:從Eclipse Marketplace裡面下載 具體操作:開啟Eclipse --> Help --> Ecl

Git 版本管理工具

Git 是一個分散式版本控制工具,它的作者 The stupid content tracker(傻瓜式的內容跟蹤器)1、 Git 背景Git 最初由Linus Torvalds編寫,用於 Linux 核心開發的版本控制工具。Git 與常用的版本控制工具 CVS、Subver

Visual Studio程式碼版本管理工具Git的使用

首先我們開啟團隊資源管理器找到當前專案所對應的本地儲存庫,雙擊 進入該專案的團隊管理器-主頁接下來,詳細介紹下主頁下四個專案的主要功能:1.更改檢視程式碼改動的地方,以及將改動的程式碼提交到本地Git儲存庫下圖表示YYApplyInfoImpl這個類發生了改動更改數右側的‘+

IDEA版本控制工具VCS中使用Git,以及快捷鍵總結不使用命令

場景介紹: 工作中多人使用版本控制軟體協作開發,常見的應用場景歸納如下: 假設小組中有兩個人,組長小張,組員小袁 場景一:小張建立專案並提交到遠端Git倉庫 場景二:小袁從遠端Git倉庫上獲取專案原始碼 場景三:小袁修改了部分原始碼,提交到遠端倉庫 場景四:小張從

SVN版本管理工具使用手冊

小強測試品牌 svn 版本管理 軟件測試 svn是啥目前TortoiseSVN是最為常用的版本控制軟件之一。大家理解為svn就類似一個文件庫,這裏面可以存放各種文件,只不過他可以給這些文件打上標簽,並且可以記錄每一次的變動,這樣你就可以獲取最新的、回滾到之前的文件了。svn的安裝下載地址:ht

SVN版本管理工具的使用

目錄 vision 服務端 版本庫 new arch home 右擊 out 一、svn下載 https://tortoisesvn.net/downloads.html 下載網站 http://www.cnblogs.com/xiaobaihome/archive/201

版本管理工具 SVN 的安裝配置及使用

SVN(subversion)詳解   SVN是近年來非常優秀的版本管理工具,與CSV管理工具一樣,SVN是一個跨平臺開元版本控制系統,但是SVN與眾不同的是,SVN會備份並記錄每個檔案每一次的修改更新變動。這樣我們可以把任意一個時間點檔案恢復到想要的某一箇舊版本,當然也可以直接瀏覽指定檔案的更新歷

使用git版本管理工具

git add 提交檔案 git commit -m "提交解釋" git push origin master 提交到主分支 2.生成ssh-key和新增ssh-key ssh-keygen -t rsa -C "[email protected]" ssh-add ~/.ssh/id_

Git程式碼版本管理工具

Git Git 是分散式版本控制系統,原始碼管理工具。 作用:   方便協同開發、方便版本控制 分散式管理:伺服器和客戶端都有版本控制能力,都能進行程式碼的提交、合併、… Git會在根目錄下建立一個.git隱藏資料夾,作為原生代碼倉庫 Git伺服器 -

Git版本控制工具學習

       Git是一個版本控制系統,用來追蹤計算機檔案的變化的工具,也是一個供多人使用的協同工具。它是一個分散式的版本控制系統,本文將簡單介紹如何使用。簡單來說,就是你要和你的夥伴一起完成一項任務,但是你們要互相交換修改,檢視自己的歷史版本等。版本控制系統就是幫助我們做這

版本管理工具git學習

最近這家新公司在用smartgit,被人說了不懂git,本人表示很不服氣,所以藉著這個週末,除了給母上大人做了一個佛教部落格以外,自己還重新學習了一下git,筆記就寫在自己的部落格裡吧。 1.git是做什麼的? 用來備份檔案。這麼說其實有點類似於優盤。但是又不是,它在完全

git分散式版本管理工具學習筆記

綜述:來了新的公司,以前用的是svn,現在是git,在這裡總結學習下,提高自己的認識。 1.git介紹       svn、vcss系統等都是集中式的版本控制系統,git是分散式的。兩者的區別是: git 適合分散式開發,強調個體。 公共伺服器壓力和資料量都不會

svn版本管理工具使用教程

SVN使用教程 目錄 1.如何下載svn工具 2.如何安裝服務端 3.使用服務端建立版本倉庫 4.安裝TortoiseSVN 5.使用TortoiseSVN工具 6.TortoiseSVN其他操作 1.如何下載svn工具 工具要使用兩個: 服務端:Subversi