軟件構造課程——git基本命令~個性化總結

雖然現在網上git命令已經爛大街了,但是平時用來交作業的過程中,常常因爲個人習慣性操作造成的個性化失誤,還是有必要總結一下解決方案滴!

下面先回顧一下基本操作:
1.首先,初始化本地倉庫,主要有2種方式獲得本地倉庫:

git init 		初始化本地倉庫

這是一個新作業的開始哈!所以它還是空的,接下來就耕耘吧!

git clone 倉庫的url

這個時候一般是作業較交錯了,或者正要修改版本呢

2.添加項目到本地倉庫
一般整個項目都添加,所以用add .

commit -m  '這裏備註點什麼吧'

這時,已經將項目添加到了本地倉庫,你可以通過命令git ls-file --stage
查看自己現在的緩存區裏面有什麼

3.對於添加錯文件的情況,我採用的是暴力手段,直接通過

git rm --cached -r .
當然,會有worning而沒法刪除的情況,這裏,我直接採用更暴力的方式:
git rm --cached -r -f . // 進行強行刪除

清空全部緩存,重新添加,別問爲什麼,因爲現在的項目不是很複雜,而目錄名字太長,博主太懶…
之後,重新重複2中的操作。

4.如果你想查看本地倉庫分支的狀態 ,那麼使用

git stauts

從圖中可以知道當前緩衝區中添加了新文件,但尚未commit5.如果你想查看以下本地本地倉庫中的提交記錄,git log 查看,同時還有文件上傳時間等信息:
在這裏插入圖片描述
6.之後,連接遠程倉庫

git remote add origin <URL>

最後,將本地倉庫的內容push到遠程倉庫中 git push origin master

7.斷開遠程與本地倉庫的連接:
這樣正常走下來,不會有什麼問題,但是當前文件夾已與另一個倉庫連接,想要remove後與另一個倉庫進行連接,直接輸入

 git remote rm 用戶名(一般是origin)

再輸入git remote add origin 再進行git add 文件名,
但是,目前爲止,還沒有發現這種操作有什麼用。。
一般出什麼大問題直接通過刪除隱藏文件.git解決一切問題!

重新建立連接:
注意這裏重新建立連接不是直接git init, 然後git remote add ,不然就產生了這樣的效果:
在這裏插入圖片描述
正確的方式是,重新clone正在工作的分支

git clone -b v2 https://github.com/ComputerScienceHIT/********,

然後得到一個以私人倉庫命名的工程,繼續工作即可。

當然爲了刪除的bg顯得高一點,可以選擇鍵入下面的命令,刪除.git文件

ls -a 發現.git文件
rm -rf .git 移除.git文件

在這裏插入圖片描述
8.然後是分支問題
比如,馬虎的博主提交了代碼之後忘記提交報告了。額,發生過幾次?。。
可以通過下面命令將報告補交到指定分支上:

git add  report 
git commit -m 'report'
git push origin 分支名

9.提交分支,分爲3種情況:

a.遠程已有remote_branch分支並且已經關聯本地分支local_branch且本地已經切換到	local_branch
   git push

 b.遠程已有remote_branch分支但未關聯本地分支local_branch且本地已經切換到local_branch

     git push -u origin/remote_branch

 c.遠程沒有有remote_branch分支並,本地已經切換到local_branch

    git push origin local_branch:remote_branch

不過其實,我一般除了什麼問題都是先暴力刪除:

從遠程倉庫刪除分支
	 git push origin --delete 分支名

然後,通過情況c.

即,執行下列命令:
git checkout -b v2 //創建並切換到本地分支 (如果本地分支已存在,可以通過git checkout 分支名 直接切換)
git push origin v2:v2 // 意思是將本地名爲v2的分支推送到遠程名爲v2的分支上(新創建的)

然後附上一個鏈接
這位博主給的基本命令已經比較全了,下面關於分支操作,也是他的
個人覺得學習git命令主要還是要理清楚原理,git主要負責管理三個部分:
一個是當前工作目錄,差不多就是實際文件所在的文件夾吧。。
一個是緩存區,add之後文件所在的位置
另一個是本地倉庫,其中Head所指向的就是最近一次提交的文件。
老師給的這張ppt很好地揭示了這三個部分實現交互的基本命令
在這裏插入圖片描述
還有本地倉庫中分支的概念,不同分支存在的目的是爲了實現並行開發,在各個之中試驗性地進行性能優化,從而實現產品版本的逐步更新換代。
在這裏插入圖片描述
主分支名字爲Master,創建倉庫時,默認的所在分支即爲Master分支。
創建其他分支,並切換過去: git checkout -b branch1
切換回主分支:git checkout master
再把新建的分支刪掉:git branch -d feature_x
合併其他分支到當前分支: git merge
合併改動之前,可以使用如下命令查看:git diff <source_branch> <target_branch>
除非你將分支推送到遠端倉庫,不然該分支就是 不爲他人所見的:git push origin
git checkout – 使用 HEAD 中的最新內容替換掉你的工作目錄中的文件。已添加到緩存區的改動,以及新文件,都不受影響。
假如你想要丟棄你所有的本地改動與提交,可以到服務器上獲取最新的版本並將你本地主分支指向到它:
git fetch origin
git reset --hard origin/master

工作區中修改比較 get diff

(1)當暫存區中沒有文件時,git diff比較的是,工作區中的文件與上次提交到版本庫中的文件。
(2)當暫存區中有文件時,git diff則比較的是,當前工作區中的文件與暫存區中的文件。
(3) git diff HEAD – file,比較的是工作區中的文件與版本庫中文件的差異。HEAD指向的是版本庫中的當前版本,而file指的是當前工作區中的文件。
(4)git diff本身只顯示尚未暫存的改動,所以,在暫存了所有更新過的文件後,運行git diff發現什麼不同也沒有。
(5)已暫存的的內容,可以使用git diff --cached或者git diff --staged。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章