Git記錄
比較好的教程: http://blog.jobbole.com/78960/
官網:
分散式版本控制系統的每個Git客戶端都儲存了整個程式碼倉庫,而不單是當前最新的映象(集中式SVN)
首先要明確下,所有的版本控制系統,只能跟蹤文字檔案的改動,比如txt檔案,網頁,所有程式的程式碼等,Git也不列外,版本控制系統可以告訴你每次的改動,但是圖片,影片這些二進位制檔案,雖能也能由版本控制系統管理,但沒法跟蹤檔案的變化,只能把二進位制檔案每次改動串起來,也就是知道圖片從1kb變成2kb,但是到底改了啥,版本控制也不知道
##################################################
環境:
##################################################
問題記錄:
##################################################
1 Git1.8.3 Bash執行緩慢?如何解決? 換了最新的版本2.12還是一樣?
2.12直接配置好了CMD環境變數,但CMD裡使用不了Linux命令
2 windows下git bash中文亂碼問題:
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding gbk
版本管理
1 GIT版本庫的使用
1)安裝Git
--已經完成
2)拉程式碼庫
安裝部署:GitLab
wget -c
sudo apt-get install openssh-server
sudo apt-get install postfix
sudo dpkg -i gitlab_7.0.0-omnibus-1_amd64.deb
remote:120.77.240.5
cd /home/gitrepo
git init --bare runoob.git
local:
git clone git@120.77.240.5:/home/gitrepo/runoob.git
cd runoob
--新增檔案
git add t1.txt
--提交
git commit -m 't'
--
git push git@120.77.240.5:/home/gitrepo/runoob.git master
---這裡還是一樣報錯
git remote add origin git@120.77.240.5:/home/git/sg3f
git remote set-url origin git@120.77.240.5:/home/gitrepo/runoob.git
git pull
##################################################
配置檔案
##################################################
配置檔案:
/etc/gitconfig 檔案:系統中對所有使用者都普遍適用的配置。若使用 git config 時用 --system 選項,讀寫的就是這個檔案。
~/.gitconfig 檔案:使用者目錄下的配置檔案只適用於該使用者。若使用 git config 時用 --global 選項,讀寫的就是這個檔案。
當前專案的 Git 目錄中的配置檔案(也就是工作目錄中的 .git/config 檔案):這裡的配置僅僅針對當前專案有效。每一個級別的配置都會覆蓋上層的相同配置,
所以 .git/config 裡的配置會覆蓋 /etc/gitconfig 中的同名變數。
設定配置檔案:
git config --global user.name "linliangfang"
git config --global user.email "jyullf2003@163.com"
檢視配置檔案:
git config --list
--檢視某一個變數
git config user.name
一般工作流程如下:
克隆 Git 資源作為工作目錄。
在克隆的資源上新增或修改檔案。
如果其他人修改了,你可以更新資源。
在提交前檢視修改。
提交修改。
在修改完成後,如果發現錯誤,可以撤回提交併再次修改並提交。
Git基本概念:
工作區:看到的檔案
暫存區:.git/index
版本庫:.git
#######################################
Git建立倉庫
#######################################
cd testgit
1 透過命令 git init 把這個目錄變成git可以管理的倉庫
git init
2 把檔案新增到版本庫中
git add *.c
git add readme
3 用命令 git commit告訴Git,把檔案提交到倉庫
git commit -m 'initialize'
git commit -a 相當於git add + git commit
儘管使用暫存區域的方式可以精心準備要提交的細節,但有時候這麼做略顯繁瑣。Git 提供了一個跳過使用暫存
區域的方式,只要在提交的時候,給 git commit 加上 -a 選項,Git 就會自動把所有已經跟蹤過的檔案暫存起
來一併提交,從而跳過 git add 步驟:
4 git status 檢視檔案狀態
5 git diff 檢視檔案變化的差異
6 git log檢視變更歷史
git log --pretty=oneline 在一行顯示記錄
7 git reflog 檢視版本號
8 git reset -–hard 6fcfc89 恢復到某個版本
9 git checkout -- readme.txt
將工作區做的修改撤消.還在工作區不在暫存區的內容撤消
10 git checkout -- b.txt 恢復刪除的b.txt檔案
##################################################
遠端倉庫的使用
##################################################
1 先有本地庫,再有遠端庫
檢視遠端倉庫
git remote -v
新增遠端倉庫:
git remote add <shortname> <url>
git remote add origin
git remote add origin
git remote add origin
git push --set-upstream origin master
合併遠端分支
git branch --set-upstream-to=origin/product product
將遠端git倉庫裡的指定分支拉取到本地
git fetch
git checkout -b 本地分支名 origin/遠端分支名
或者:
git pull origin dev2:dev2
--新增遠端倉庫,提交到遠端倉庫
git@120.77.240.5/home/git/sgop/
在本地新增遠端倉庫
git remote add origin git@120.77.240.5:/home/git/mouse/
把本地的master分支Push到遠端倉庫(origin)
git push -u origin master
git remote set-url origin git@120.77.240.5:/home/git/sgop/
git pull
提取遠端倉庫:
1 從遠端倉庫下載分支與資料
git fetch
2 從遠端倉庫提取資料併合併到當前分支
git pull
3 git push
在LabHub上新建一個倉庫:testgit
將本地將已有的倉庫跟遠端倉庫相關聯,保持同步
git remote add origin
git push -u origin master
-u選項是第一次提交才需要
origin--為遠端庫的預設名稱
從遠端到本地克隆:
git clone
git remote add origin
git branch --set-upstream-to=origin/<分支> product
ssh-keygen -t rsa -C "jyullf2003@163.com"
git remote add origin
git remote add origin
git remote add origin
git push -u origin master
##################################################
六:建立與合併分支
##################################################
git checkout -b dev 建立dev分支,並完成分支切換,相當於兩個命令:
git branch dev
git checkout dev
git branch檢視分支
在master上合併dev分支/git merge命令用於合併指定分支到當前分支上
git merge dev
git branch -d dev 刪除dev分支
總結建立與合併分支命令如下:
檢視分支:git branch
建立分支:git branch name
切換分支:git checkout name
建立+切換分支:git checkout –b name
合併某分支到當前分支:git merge name
刪除分支:git branch –d name
分支策略:首先Master主分支應該是非常穩定的.也就是用來發布版本的,一般情況下不允許在上面幹活,幹活一般情況下在新建的Dev分支上幹活,幹完後,比如要釋出,或者說Dev分支程式碼穩定後再合併到Master分支上
##################################################
Git基本常用命令如下:
##################################################
mkdir: XX (建立一個空目錄 XX指目錄名)
pwd: 顯示當前目錄的路徑。
git init 把當前的目錄變成可以管理的git倉庫,生成隱藏.git檔案。
git add XX 把xx檔案新增到暫存區去。
git commit –m “XX” 提交檔案 –m 後面的是註釋。
git status 檢視倉庫狀態
git diff XX 檢視XX檔案修改了那些內容
git log 檢視歷史記錄
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一個版本
(如果想回退到100個版本,使用git reset –hard HEAD~100 )
cat XX 檢視XX檔案內容
git checkout — XX 把XX檔案在工作區的修改全部撤銷。
git rm XX 刪除XX檔案
git remote add origin 關聯一個遠端庫
git push –u(第一次要用-u 以後不需要) origin master 把當前master分支推送到遠端庫
git clone 從遠端庫中克隆
git checkout –b dev 建立dev分支 並切換到dev分支上
git branch 檢視當前所有的分支
git checkout master 切換回master分支
git merge dev 在當前的分支上合併dev分支
git branch –d dev 刪除dev分支
git branch name 建立分支
git stash 把當前的工作隱藏起來 等以後恢復現場後繼續工作
git stash list 檢視所有被隱藏的檔案列表
git stash apply 恢復被隱藏的檔案,但是內容不刪除
git stash drop 刪除檔案
git stash pop 恢復檔案的同時 也刪除檔案
git remote 檢視遠端庫的資訊
git remote –v 檢視遠端庫的詳細資訊
git push origin master Git會把master分支推送到遠端庫對應的遠端分支上
--
or push an existing repository from the command line
git remote add origin
git push -u origin master
關於.idea的資料夾中的workspace.xml設定ignore之後每次commit依舊提示需要提交改變,
這就會導致, 每次merge就會導致提示“本地檔案改變但是尚未提交”。
解決問題嘗試:
嘗試一,google了很多之後,都是說是讓rm掉.idea檔案,或者是說因為"/"號無法解析。導致設定忽略無效。
按照這個思路,設定執行"git rm -f --cached .idea ",提示錯誤。沒有正確解決,因該是自己對git的命令列不夠了解。
嘗試二,然後嘗試搜尋git的忽略原理,最後終於正確解決。
原因: git的本地忽略設定必須保證git的遠端倉庫分支上沒有這個要忽略的檔案,如果遠端分支上存在這個檔案,本地在設定ignore
這個檔案,將會失敗,無法commit忽略。(有人說是git的bug,本人猜測是git並沒有考慮到這個需求)
##################################################
追加現有專案進Git的步驟:
##################################################
1 在碼雲上新建專案比如sgsm
2 git clone 到本地
3 把之前專案cp到 repositry下面。
4 git add *
5 git commit -m "init"
6 git push
git reset -–hard 7ced46616645a73b4730e913ba66ef96bf82178d
參考這個:
https://www.cnblogs.com/idiv/p/8565773.html
##################################################
如何切換遠端git地址
##################################################
進入專案目錄
git remote set-url origin 新git地址
比如:
git remote set-url origin wuqineng/mall-admin.git
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10248702/viewspace-2670375/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- git 記錄Git
- Git 命令使用記錄Git
- Git命令實操記錄Git
- git restore極簡使用記錄GitREST
- git如何清空所有的commit記錄GitMIT
- git高階命令學習記錄Git
- Git 碼雲--建立和使用記錄Git
- git rebase沖掉記錄找回方法Git
- Git學習記錄v1.0Git
- git cherry-pick的用法記錄Git
- git相關操作,個人記錄Git
- 記錄一次Git報錯Git
- Git的修改提交記錄和變基Git
- git log檢視提交歷史記錄Git
- 【記錄】Git 是如何打標籤的Git
- [記錄] Git 是如何打標籤的Git
- git基礎——記錄每次更新到倉庫Git
- Git 學習記錄之演變歷史Git
- 如何修改git已提交記錄的郵箱?Git
- Git 倉庫程式碼遷移步驟記錄Git
- git checkout 對工作目錄的影響 —— Git 學習筆記 21Git筆記
- 記錄每次更新到倉庫 —— Git 學習筆記 10Git筆記
- 如何克服解決Git衝突的恐懼症?(Git移交提交記錄)Git
- Git 系列教程(5)- 記錄每次更新到倉庫Git
- git 修改之前提交記錄的某幾次記錄的賬號和郵箱Git
- 『現學現忘』Git基礎 — 24、Git中檢視歷史版本記錄Git
- git-清空歷史提交記錄(保留原倉庫)Git
- Git新手教程-檢視倉庫的歷史記錄(四)Git
- 【記錄】CentOS7.6 編譯安裝最新版 GitCentOS編譯Git
- [記錄] CentOS7.6 編譯安裝最新版 GitCentOS編譯Git
- Git 遊戲攻略(上篇)- 基礎&高階&整理提交記錄Git遊戲
- git 學習筆錄Git
- Git(6)-- 記錄每次更新到倉庫(git clone、status、add、diff、commit、rm、mv命令詳解)GitMIT
- [Note] git清空.git目錄後,重新再git init & git remote的討論GitREM
- linux中記錄GIT使用者名稱密碼的方法LinuxGit密碼
- 記錄一次誤刪操作,分享使用 Git 撤銷修改Git
- 記錄一次git的標準使用(簡約實用)Git
- Git倉庫的提交記錄亂成一團,怎麼辦?Git