Git記錄

gdutllf2006發表於2020-02-18

比較好的教程: 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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章