Git版本控制和個人一些總結

2021-09-28 17:31:06 字數 2607 閱讀 1121

1. 註冊github賬號,讓git 知道這台電腦做的修改要鏈結到哪乙個使用者

git config --global user.name ""

git config --global user.email "< [email protected] >"

2. 建立本機repo,初始化git管理
mkdir local_repo 

cd local_repo

mkdir cuda_lstm_forward_v1

mkdir cuda_lstm_forward_v2

git init

//列出專案資料夾下的檔案和資料夾(-l引數為列出詳細資料,-a為列出隱藏資料夾)

ls -la

3. 將repo add到cashed裡
git add . //新增所有檔案

[zhipeng @ cuda_repo]# git add cuda_lstm_forward_v1/

[zhipeng @ cuda_repo]# git add cuda_lstm_forward_v2/

[zhipeng @ cuda_repo]# git status

位於分支 master

尚無提交

要提交的變更:

(使用 "git rm --cached 《檔案》..." 以取消暫存)

新檔案: cuda_lstm_forward_v1/00_lstm.cu

新檔案: cuda_lstm_forward_v1/build.sh

新檔案: cuda_lstm_forward_v1/cuda_lstm_forward.cc

新檔案: cuda_lstm_forward_v2/00_lstm.cu

新檔案: cuda_lstm_forward_v2/build.sh

新檔案: cuda_lstm_forward_v2/cuda_lstm_forward.cc

新檔案: cuda_lstm_forward_v2/cuda_lstm_forward.so

新檔案: cuda_lstm_forward_v2/lib00_lstm.so

未跟蹤的檔案:

(使用 "git add 《檔案》..." 以包含要提交的內容)

.ds_store

//未commit時使用,即可恢復到檔案尚未加入暫存區

$ git rm --cached test.cc

4. 提交和撤回

//比較現在檔案和上次commit之間的差異,也就是說你做了哪些修改

$ git diff

// -m為輸入commit message,也就是說這個commit內做了哪些事情

$ git commit -m "lstm的加速,v1通用v2定製"

//head^的意思是上乙個版本,上上乙個版本就是head^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成head~100

git reset --soft head^

–mixed

意思是:不刪除工作空間改動**,撤銷commit,並且撤銷git add . 操作

這個為預設引數,git reset --mixed head^ 和 git reset head^ 效果是一樣的。

–soft

不刪除工作空間改動**,撤銷commit,不撤銷git add .

–hard

刪除工作空間改動**,撤銷commit,撤銷git add .

注意完成這個操作後,就恢復到了上一次的commit狀態。

順便說一下,如果commit注釋寫錯了,只是想改一下注釋,只需要:

git commit --amend

總結:

5. 將repository 做本機和遠端的鏈結

//將本地端程式push到遠端檔案庫/

分支$ git push -u origin master

引數-u等同於--set-upstream,只要成功設定好upstream後,第二次以後要上傳分支時,就只需要透過git push就可以了,事實上,$ git push -u origin master可以拆解成

$ git push origin master 

$ git checkout master

$ git branch -u origin/master

6. 檔案刪除
git rm test.txt

rm 'test.txt'

git commit -m "remove test.txt"

如果誤刪,使用git checkout --可從遠端恢復

git checkout其實是用版本庫里的版本替換工作區的版本,無論工作區是修改還是刪除,都可以「一鍵還原」。

git 版本控制的一些命令

git add 暫存區的目錄樹會更新,同時將工作區修改或新增的內容寫到了物件庫乙個新物件,該物件的id被記錄在暫存區的檔案索引中,工作區後續的add 和 暫存區後續的commitf都更新到這個id對應的物件中 git commit 暫存區的目錄樹寫入物件庫,head指向新的暫存區的那個目錄樹。簡單理...

版本控制 SVN和GIT的一些使用感受

原本在學校跟隨導師做專案的時候,就一直在使用版本管理,主要是用來記錄專案的修改,專案成員之間的溝通和交流。使用的服務端是visual svn,客戶端是tortoisesvn,常用的tortoisesvn指令也僅限於svn update和svn commit,前者用來從伺服器更新,以期望檢視其他同學的...

Git 忽略一些檔案不加入版本控制

在git中如果想忽略掉某個檔案,不讓這個檔案提交到版本庫中,可以使用修改 gitignore 檔案的方法。這個檔案每一行儲存了乙個匹配的規則例如 此為注釋 將被 git 忽略 a 忽略所有 a 結尾的檔案 lib.a 但 lib.a 除外 todo 僅僅忽略專案根目錄下的 todo 檔案,不包括 s...