如何使用Git Git常用命令

如何使用 Git

一、克隆

1.在目錄/project 上右鍵選擇Git Bash Here,或者cmd,powershell都可以執行命令;
2.輸入命令git clone https://github.com/lingdian-ah/MainPage.git;
//會將該項目克隆到當前目錄下,/project/MainPage

二、Git使用步驟

開始學習

// 切換到項目文件夾下執行命令
1.touch readme.md					// 創建readme.md文件,也可自己手動新建一個文件:鼠標右鍵新建文件
2.git init							// 初始化,創建本地git倉庫,僅執行一次

3.git add README.md				// 將文件添加到倉庫中,git add . 表示添加所有文件到本次倉庫,.點和*星號一個意思,表示全部(每次修改時需執行該命令)
4.git commit -m "first commit"	// 提交,並輸入本次更改信息
	//注意:也可以執行命令:git commit -a -m "本次更改內容"   表示提交所有更改文件,該命令等同於3,4步驟
	
5.git remote add origin http://gogit.qyvip.com/lingdian/mango.git	// 添加遠程倉庫,如果不換倉庫,只需執行一次
6.git pull origin master			// 拉取內容,如果知道沒有人更新過,可以不執行(此處爲master主分支,也有可能是其他分支)
7.git push -u origin master		// 上傳本次更改的內容,後面是分支,此處爲master主分支,也有可能是其他分支

合併分支

場景:分支master,branch1,branch2
1.爲了解決master上的 bug1,創建了分支 branch1,在該分支上進行修改;git checkout -b branch1
2.爲了解決master上的 bug2,創建了分支 branch2,在該分支上進行修改;git checkout -b branch2
3.當 bug1 解決後,需要把 branch1分支上的內容合併到master上,執行命令:
	git checkout master		// 先切到master分支
	git merge branch1		// 將branch1合併到master,此時由於沒用其他人調整,不存在衝突
4.此時爲了解決 bug2,已經在branch2上進行了多次修改提交,目前以解決該bug,假設解決bug1和bug2都修改了文件demo.java
5.現在進行最終合併,執行命令:
	git checkout master		// 同樣的需先切到master分支
	git merge branch2		// 將 branch2 合併到 master,由於和branch1修改了同一個文件,此時會存在衝突
	git status				// 查看狀態,輸出:...略  Unmerged paths:  ...略  demo.java
	git mergetool 或者 vim 文件名// 使用工具處理衝突,會提示你輸入工具,可以直接回車,使用默認工具處理,工具中會體現文件差異等信息
	git commit -a -m "merge branch2"// 解決衝突後,進行提交
	git push origin master			// 進行push,然後你可以在github上查看提交記錄,已經文件內容是否正確,這樣就ok了

三、常用命令

遠程地址相關命令:remote

1.添加遠程地址
	git remote add origin 地址		// origin:自定義,遠程地址名稱,地址:爲github項目的地址
2.刪除遠程地址
	git remote remove origin		// origin:要刪除的地址
3.修改遠程地址
	git remote set-url origin 新地址	// origin:遠程地址名稱,新地址:新的github項目地址
4.查看遠程地址
	git remote						// 查看名稱
	git remote -v					// 查看詳情,名稱+地址

分支相關命令:branch、checkout

1.創建分支
	git branch 分支名稱				// 分支名稱:新建的分支名
2.切換分支
	git checkout 分支名稱			// 分支名稱:要切換的到的分支名
3.創建分支並切換到該分支
	git checkout -b 分支名稱			// 分支名稱:新建的分支名
	git checkout -B 分支名稱			// 創建/重置分支,並切換到該分支
4.查看分支
	git branch						// 查看分支名稱
	git branch -v					// 查看分支詳情,名稱+最後提交記錄
	git branch -a					// 查看所有分支:包含遠程和本地分支
	git branch --merged				// 查看哪些分支已經合併到當前分支上,*表示當前分支
	git branch --no-merged			// 查看哪些分支還未合併到當前分支上,*表示當前分支
5.刪除分支
	git branch -d 分支名稱			// 分支名稱:要刪除的分支名

重置命令:reset

1.將文件還原爲上次提交時的狀態(前提是該文件是未提交狀態)
	git checkout -- 文件名稱

2.若文件已添加到本地倉庫,修改爲未添加
	git reset HEAD 文件名稱			// 可以通過git add 文件名稱 再次添加文件到本地倉庫

日誌、記錄:log、diff、status、show

1.更新記錄
	git log							// 查看提交記錄,輸入q退出
2.顯示本次更改文件中改動的內容
	git diff
3.顯示當前狀態,可以看到哪些文件更改了 ( 經常使用的一個命令 )
	git status
4.顯示最後一次的文件更改情況
	git show

IDEA Git 開發

分支a合併到master

通常情況下master主分支上是不做修改的。自己新建一個分支,在分支上進行修改,修改,測試好之後,再與主分支進行合併。

詳情見:https://blog.csdn.net/dling8/article/details/89049222

情況說明:現有分支master,分支a。在分支a上做了修改,想要和master主分支進行合併。大致步驟如下:

1.在分支a上修改後,需進行提交commit、上傳push→到分支a上;
2.idea右下角,Local Branches欄目:選中master,checkout切換到master主分支上;
3.然後同樣在idea右下角,Remote Branches欄目:選中分支a,Merge into Current;
4.此時還是在master主分支上,然後進行commit、push操作,這樣master上的代碼就更新了;

pull拉取失敗,又無法提交的解決辦法

思路:先將本地修改在git棧中保存起來,這樣本地修改就被清除了,此時我們再從遠程分支上pull拉取,就可以了。拉取成功後,再將git棧中保存的修改釋放出來,如果有代碼衝突,可進行merge操作。合併完成後,再進行commit、push完成更新。

鏈接:https://blog.csdn.net/dling8/article/details/89049997

1.選擇Stash Changes...,後輸入message(此次Stash的說明),最後進行創建(點擊Create Stash);
2.從遠程拉取,執行pull;
3.選擇Unstash Changes...,選中剛剛保存的Stash,並勾選Pop Stash(意思是把這個stash記錄清除),最後點擊Apply Stash;
4.此時可能會出現代碼衝突,彈出代碼衝突窗口,我們點擊merge...,進行手動合併;

.gitignore規則不生效的解決辦法

idea可以下載一個插件.gitignore,方便管理

把某些目錄或文件加入忽略規則,按照上述方法定義後發現並未生效,原因是.gitignore只能忽略那些原來沒有被追蹤的文件,如果某些文件已經被納入了版本管理中,則修改.gitignore是無效的。那麼解決方法就是先把本地緩存刪除(改變成未被追蹤狀態),然後再提交:

git rm -r --cached .	//注意後面有個點
git add .				//注意後面有個點
git commit -m "update .gitignore"

idea出現merging 分支a 的解決辦法

如何終止git merging狀態

在idea控制檯輸入:
git merge --abort	//此時右下角就變爲了正常的分支狀態

錯誤

push rejected

情形:我在github上創建了一個倉庫與本地項目名稱相同,包含了README.md文件。本地項目也包含了README.md文件。在本地項目上創建了本地倉庫,添加了遠程鏈接。commit成功,push時出現這個問題。
解決:執行下面的命令,然後再push就成功了
	// 允許合併不相關歷史的內容
	git pull origin master --allow-unrelated-histories
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章