1. 程式人生 > >教你如何使用免費的私人程式碼託管(bitbucket) 和 常用git指令

教你如何使用免費的私人程式碼託管(bitbucket) 和 常用git指令

想找個免費的私人程式碼託管平臺,github,googlecode, SourceForge都不行,後來發現bitbucket(https://bitbucket.org/),註冊時,如果不多於5個人維護一個專案可以選擇個人。

還有個很強大的git視覺化軟體souretree(http://www.sourcetreeapp.com/?utm_source=bitbucket&utm_medium=link&utm_campaign=bitbucket_footer)。

---------------------------------------------------------

------------------------------------------------------------------------------------------------------------------

 

 

檢視、新增、提交、刪除、找回,重置修改檔案

git help <command> # 顯示command的help

git show # 顯示某次提交的內容 git show $id

git co -- <file> # 拋棄工作區修改

git co . # 拋棄工作區修改

git add <file> # 將工作檔案修改提交到本地暫存區

git add . # 將所有修改過的工作檔案提交暫存區

git rm <file> # 從版本庫中刪除檔案

git rm <file> --cached # 從版本庫中刪除檔案,但不刪除檔案

git reset <file> # 從暫存區恢復到工作檔案

git reset -- . # 從暫存區恢復到工作檔案

git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交後的所有本次修改

git ci <file> git ci . git ci -a # 將git add, git rm和git ci等操作都合併在一起做                                    git ci -am "some comments"

git ci --amend # 修改最後一次提交記錄

git revert <$id> # 恢復某次提交的狀態,恢復動作本身也建立次提交物件

git revert HEAD # 恢復最後一次提交的狀態

檢視檔案diff

git diff <file> # 比較當前檔案和暫存區檔案差異 git diff

git diff <$id1> <$id2> # 比較兩次提交之間的差異

git diff <branch1>..<branch2> # 在兩個分支之間比較

git diff --staged # 比較暫存區和版本庫差異

git diff --cached # 比較暫存區和版本庫差異

git diff --stat # 僅僅比較統計資訊

檢視提交記錄

git log git log <file> # 檢視該檔案每次提交記錄

git log -p <file> # 檢視每次詳細修改內容的diff

git log -p -2 # 檢視最近兩次詳細修改內容的diff

git log --stat #檢視提交統計資訊

tig

Mac上可以使用tig代替diff和log,brew install tig

Git 本地分支管理

檢視、切換、建立和刪除分支

git br -r # 檢視遠端分支

git br <new_branch> # 建立新的分支

git br -v # 檢視各個分支最後提交資訊

git br --merged # 檢視已經被合併到當前分支的分支

git br --no-merged # 檢視尚未被合併到當前分支的分支

git co <branch> # 切換到某個分支

git co -b <new_branch> # 建立新的分支,並且切換過去

git co -b <new_branch> <branch> # 基於branch建立新的new_branch

git co $id # 把某次歷史提交記錄checkout出來,但無分支資訊,切換到其他分支會自動刪除

git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,建立成一個分支

git br -d <branch> # 刪除某個分支

git br -D <branch> # 強制刪除某個分支 (未被合併的分支被刪除的時候需要強制)

 分支合併和rebase

git merge <branch> # 將branch分支合併到當前分支

git merge origin/master --no-ff # 不要Fast-Foward合併,這樣可以生成merge提交

git rebase master <branch> # 將master rebase到branch,相當於: git co <branch> && git rebase master && git co master && git merge <branch>

 Git補丁管理(方便在多臺機器上開發同步時用)

git diff > ../sync.patch # 生成補丁

git apply ../sync.patch # 打補丁

git apply --check ../sync.patch #測試補丁能否成功

 Git暫存管理

git stash # 暫存

git stash list # 列所有stash

git stash apply # 恢復暫存的內容

git stash drop # 刪除暫存區

Git遠端分支管理

git pull # 抓取遠端倉庫所有分支更新併合併到本地

git pull --no-ff # 抓取遠端倉庫所有分支更新併合併到本地,不要快進合併

git fetch origin # 抓取遠端倉庫更新

git merge origin/master # 將遠端主分支合併到本地當前分支

git co --track origin/branch # 跟蹤某個遠端分支建立相應的本地分支

git co -b <local_branch> origin/<remote_branch> # 基於遠端分支建立本地分支,功能同上

git push # push所有分支

git push origin master # 將本地主分支推到遠端主分支

git push -u origin master # 將本地主分支推到遠端(如無遠端主分支則建立,用於初始化遠端倉庫)

git push origin <local_branch> # 建立遠端分支, origin是遠端倉庫名

git push origin <local_branch>:<remote_branch> # 建立遠端分支

git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然後再push刪除遠端分支

Git遠端倉庫管理

git remote -v # 檢視遠端伺服器地址和倉庫名稱

git remote show origin # 檢視遠端伺服器倉庫狀態

git remote add origin [email protected] github:robbin/robbin_site.git # 新增遠端倉庫地址

git remote set-url origin [email protected] github.com:robbin/robbin_site.git # 設定遠端倉庫地址(用於修改遠端倉庫地址) git remote rm <repository> # 刪除遠端倉庫

建立遠端倉庫

git clone --bare robbin_site robbin_site.git # 用帶版本的專案建立純版本倉庫

scp -r my_project.git [email protected] git.csdn.net:~ # 將純倉庫上傳到伺服器上

mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在伺服器建立純倉庫

git remote add origin [email protected] github.com:robbin/robbin_site.git # 設定遠端倉庫地址

git push -u origin master # 客戶端首次提交

git push -u origin develop # 首次將本地develop分支提交到遠端develop分支,並且track

git remote set-head origin master # 設定遠端倉庫的HEAD指向master分支

也可以命令設定跟蹤遠端庫和本地庫

git branch --set-upstream master origin/master

git branch --set-upstream develop origin/develop

相關推薦

如何使用免費私人程式碼託管(bitbucket) 常用git指令

想找個免費的私人程式碼託管平臺,github,googlecode, SourceForge都不行,後來發現bitbucket(https://bitbucket.org/),註冊時,如果不多於5個人維護一個專案可以選擇個人。 還有個很強大的git視覺化軟體souret

大神輕松玩轉DockerKubernetes中如何運行MongoDB微服務

cdn 成員 實現 細節 步驟 class 就會 接受 blog 本文介紹了利用Docker和Kubernetes搭建一套具有冗余備份集合的MongoDB服務,從容器對CI和CD引發的改變入手,討論了容器技術對MongoDB帶來的挑戰和機會,然後實戰如何部署一套穩定的Mo

【手把手】Python獲取財經資料視覺化分析

內容來自:微信公眾號:python金融量化 關注可瞭解更多的金融與Python乾貨。 “巧婦難為無米之炊”,找不到資料,量化分析也就無從談起。對於金融分析者來說,獲取資料是量化分析的第一步。Python的一個強大功能之一就是資料獲取(爬蟲)。但是對於沒時間學爬蟲程式的小白來說,pytho

手把手讀取Android版微信手Q的聊天記錄(僅作技術研究學習)

1、引言 特別說明:本文內容僅用於即時通訊技術研究和學習之用,請勿用於非法用途。如本文內容有不妥之處,請聯絡作者進行處理! 我司有關部門為了獲取黑產群的動態,有同事潛伏在大量的黑產群(QQ群、微信群)中,幹起了無間道的工作。隨著黑產群數量的激增,同事希望能自動獲取黑產

一篇看懂spring bean工廠aop

這篇文章為spring回顧總結的第二篇,本篇主要分為兩個部分,分別是spring的bean工廠的實現.spring的aop實現原理,這兩部分也是面試當中問的比較多的. spring的bean工廠的實現 spring的bean工廠的實現可以有以下三種方式 靜態工廠實現 public class

GitChat · 區塊鏈 | 如何輕鬆學習區塊鏈比特幣基礎技術原理

GitChat 作者:李豔鵬 原文: 教你如何輕鬆學習區塊鏈和比特幣基礎技術原理 關注微信公眾號:GitChat 技術雜談 ,這裡一本正經的講技術 背景 比特幣的發展歷程 自從2009年一個自稱中本聰(對,是日本人…)的人在一

手把手如何安裝Tensorflow(WindowsLinux兩種版本)

     現在越來越多的人工智慧和機器學習以及深度學習,強化學習出現了,然後自己也對這個產生了點興趣,特別的進行了一點點學習,就通過這篇文章來簡單介紹一下,關於如何搭建Tensorflow以及如何進行使用。建議的話,還是要學習了一點Python基礎知識和Linux知識是最好的

百度區塊鏈萊茨狗?只有一隻?來!免費領4只

【匯新雲】福利放送 百度的區塊鏈狗可以領養了,每人四隻  第一隻:https://pet-chain.baidu.com/chain/splash  第二隻:https://pet-chain.baidu.com/chain/splash?appId=2&tpl=wa

大神設定Linux程序的睡眠喚醒

Linux核心的例子 在Linux作業系統中,核心的穩定性至關重要,為了避免在Linux作業系統核心中出現無效喚醒問題, Linux核心在需要程序睡眠的時候應該使用類似如下的操作: /* ‘q’是我們希望睡眠的等待佇列 */ DECLARE_WAITQUEUE(wait,current); add_wa

一步一步將java程式碼打成jar包用bat批處理命令執行

1.背景 前不久接到一個朋友的請求,讓我幫他做個小程式處理一些工作上的事情,好歹作為java開發工程師,這點忙還是要幫的.不過馬上遇到了一個問題,平時我們都是用IDEA或者eclipse執行的程式碼, 或者是web專案用tomcat執行的, 他現在這種小白肯定

免費且快速地搭建個人網站

今日科技快訊針對近日坊間流傳的“我們天天在看你的微信”一說,微信團隊今天發表宣告重申三條使用者隱

上傳程式碼到碼雲轉載

以下所有操作都在命令列進行 1 git 配置 git config --global user.name “使用者名稱” git config --global user.email “郵箱” 2 生成公鑰私鑰 #ssh-keygen -t rsa -C "[

手把手免費安裝Webstorm

首先下載keygen(用處-----安裝正版軟體使用滴) keygen使用方法 執行mac終端(命令列),切換到keygen所在目錄。(如果是桌面的話命令為 cd desktop)輸入命令:c

不想花錢買書,我免費

關注我的朋友都知道,我每篇文章都會送電子書,所以,最近後臺聯絡我要書的人也比較多,因此我必須寫一篇文章關於如何免費閱讀好書。 一來是覺得授人以魚不如授人以漁,讓我的讀者都知道要去哪些渠道去獲取你想看的書。 二來也想減輕我的負擔,粉絲太多,我有些忙不過來,不能

手把手搭建AlphaZero(使用PythonKeras)

安妮 允中 編譯整理本文經AI新媒體量子位(公眾號ID:qbitai )授權轉載,轉載請聯絡出處。AlphaZero,DeepMind陣營的最強棋士。關於AlphaZero的理論分析已經不少,最近Applied Data Science的聯合創始人David Foster,寫

3大類別如何使用程式碼保護軟體VMProtect的內建指令碼(1)

VMProtect是一種很可靠的工具,可以保護應用程式程式碼免受分析和破解,但只有在應用程式內保護機制正確構建且沒有可能破壞整個保

ES6學習筆記(二):玩轉類的繼承類的物件

繼承 程式中的繼承: 子類可以繼承父類的一些屬性和方法 class Father { //父類 constructor () { } money () { console.log(100) } } class Son extends Father { //子類繼承父類 } l

Android | 如何用程式碼一鍵實現銀行卡繫結

前言   小編前面幾期文章分別給大家介紹了用程式碼實現微笑抓拍、證件照DIY、拍照翻譯的功能開發(連結見文章末尾),本次小編給大家帶來的是用程式碼一鍵實現銀行卡識別與繫結功能。 銀行卡識別的應用場景   介紹開發步驟前,我們先來談談銀行卡識別的具體應用場景,銀行APP、移動支付、繳費類APP、電商類AP

CloudIDE外掛開發實戰:如何除錯程式碼

摘要:今天我們來重點介紹下CloudIDE外掛的除錯技巧,在外掛開發過程中除錯作為重要的問題分析和定位手段能夠有效幫助開發者提升外掛質量。 今天文章中的樣例工程我們繼續以上一篇《實戰CloudIDE外掛開發-快速上手》中的專案為基礎,深入介紹外掛的除錯方法。可能有的開發者對於外掛的前後端相關概念會有所疑惑,大

手把手Spring Boot整合Mybatis PlusSwagger2

#前言:如果你是初學者,請完全按照我的教程以及程式碼來搭建(文末會附上完整的專案程式碼包,你可以直接下載我提供的完整專案程式碼包然後自行體驗!),為了照顧初學者所以貼圖比較多,請耐心跟著教程來,希望這個專案Demo能給你一些幫助,如果覺得寫的還可以請給個關注和點贊,謝謝! #題外話:這是我第一篇用markdo