gitadd子文件夾
㈠ git篇之add
git add [file1] [file2] -->添加多個文件到緩存區
git add [dir] --->添加文件夾到緩存區包括子文件夾
git add . --->本地倉庫緩存所有改動和新增文件不包括刪除文件 (在1.x版本的效果在2.x版本同git add -A效果一致)
git add -u --->本地倉庫緩存所有改動文件和刪除文件不包括新增
git add -A --->本地倉庫緩存所有改動文件包括新增和刪除
git add --ignore filename ---> 忽略更改文件
git add -i --->進入交互終端,暫存的修改列在左側,未暫存的修改列在右側可按提示進行交互
git add -p --->啟用補丁暫存,即暫存某個文件的一部分如同時添加func1和func2我們只希望暫存func1即可使用此命令
㈡ git怎麼上傳文件夾
1、首先在git空間上面創建一個新項目,項目名稱跟需要上傳的項目名稱一致。

㈢ 執行gitadd以後文件消失了
執行gitadd文件之後,沒有提交成功,文件就會丟失,可以通過找迴文件,重新進行修改。
1、執行gitfsck--lost-found命令。
2、進入後綴為git的文件夾中,將lost-found/other文件夾復制到桌面。
3、丟失的內容是代碼,可以將代碼考回原路徑下的文件,丟失的是圖片等文件,直接重命名即可使用。
㈣ git 如何忽略項目中的子文件夾
在使用git tracking 項目文件的變化時,如果項目中包含大的數據文件變化,會佔用大量的空間用於記錄歷史,對於不需要tracking的文件,可以通過以下方法去除git tracking,以節省磁碟空間。
step1: 在git tracking目錄下,簡歷文件,文件名為" .gitignore "。對於windows系統,系統禁止建立該文件名為「 .gitignore 」的文件,可以新建一個文件,重命名為" .gitignore. "
step2: 在文件中添加不需要跟蹤的文件夾,並以'/' 結尾,如:
'excludedFOlder/'
reference: https://www.atlassian.com/git/tutorials/saving-changes/gitignore
注意,gitignor文件的編輯請使用windows自帶notepad,如果某些時候gitignor不工作,使用下面語句清空cache:
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
㈤ Git基本操作
安裝完 Git 軟體後,需要我們做一下全局的配置工作,如:用戶名、郵箱等。
命令:git config
設置用戶名命令:
設置郵箱命令:
其中, --global 指定為全局配置,不指定該參數,則為當前所在倉庫配置。
查看配置:
在本地創建版本庫,需要使用 git init 命令。
首先,我們需要新建一個存放版本庫的文件夾,然後進入到該目錄所在路徑,執行如下命令,格式為:
最後查看文件夾,可以看到包含有 .git 子文件夾,說明創建版本庫成功了。
也可以在執行 git init 命令時指定一個文件夾作為版本庫。格式為:
克隆版本庫是指從現有 Git 版本庫中拷貝項目。
克隆版本庫使用如下命令,格式為:
如果我們需要克隆到指定的目錄,可以使用以下命令格式:
如:克隆遠程倉庫
添加一個或多個文件到暫存區:
添加指定目錄到暫存區,包括子目錄:
添加當前目錄下的所有文件到暫存區:
查看在我們上次提交之後是否有對文件進行再次修改。 格式為:
-s參數可以幫助我們獲得比較簡短的顯示結果。
如:我們在一個版本庫中所在目錄中增加一個 Unit1.pas 文件,然後執行如下命令:
顯示暫存區和工作區的差異:
顯示暫存區和上一次提交(commit)的差異:
顯示兩次提交之間的差異:
將暫存區內容添加到本地倉庫中。
提交暫存區到本地版本庫中:
message 可以用於描述提交的信息。
提交暫存區的指定文件到版本庫區:
修改後直接提交:
-a參數設置修改文件後不需要執行 git add 命令,直接來提交。
如:我們在上面的命令基礎上進行提交
接下來,我們對 Unit1.pas 文件進行修改,然後進行文件比較:
git reset 命令用於回退版本,可以指定退回某一次提交的版本。
git reset 命令語法格式如下:
可以使用 數字表示
git rm 命令用於刪除文件。
如果只是簡單地從工作目錄中手工刪除文件,運行 git status 時就會在 Changes not staged for commit 的提示。所以,在 git 環境下一定要使用 git 的刪除文件操作。
git rm 刪除文件有以下幾種形式:
將文件從暫存區和工作區中刪除:
如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f 。
如果想把文件從暫存區域移除,但仍然希望保留在當前工作目錄中,換句話說,僅是從跟蹤清單中刪除,使用 --cached 選項即可:
可以遞歸刪除,即如果後面跟的是一個目錄做為參數,則會遞歸刪除整個目錄中的所有子目錄和文件:
git mv 命令用於移動或重命名一個文件、目錄或軟連接。
如果新文件名已經存在,但還是要重命名它,可以使用 -f 參數:
㈥ github 怎麼add整個文件夾
登陸github gui程序
選擇你的代碼右鍵打開目錄
然後手動添加文件夾和文件
接著右鍵打開git shell命令行
使用git add dir/files的方式添加文件
如果提示失敗請用帶-f 參數來添加文件
添加完成之後使用git commit添加說明
輸入上面的git commit之後會直接打開你操作系統默認的文本編輯器
輸入你的更新說明
關閉文本編輯器之後會動提交更新說明
接著使用git push 來提交我們剛剛的修改
添加完成之後登陸github網站查看你的文件
㈦ git add. 失敗
原因:
即在本地初始化的倉庫(使用 git init的文件夾) 中的某一個文件夾,也含有 .git 文件 。
解決:
刪除子文件夾里的.git文件,然後重新add、commit、push
㈧ git init,git add和git commit三者的區別和使用
git init(版本庫初始化命令)
1、$git init
之後可以在demo目錄下看到看到一個.git隱藏文件夾,這個文件夾就是版本庫,而demo目錄及其子目錄就是工作區。
git add(將工作區文件提交到暫存區stage)
2、$git add
文件welcome.txt從工作區被提交到暫存區,但此時文件並沒有真正進入到版本庫當中,文件目前只處於一個中間狀態。
3、git commit(將暫存區文件提交到版本庫中)
$git commit
這個命令將處於中間狀態的文件(暫存區的文件)提交到版本庫中,這時才算真正完成了一次提交過程。
值得一提的是,如果此時添加一行文字到welcome.txt
$echo 「hello」 >> welcome.txt
此時文件發生了改動,如果希望將修改後的文件提交至版本庫,必須先git add將修改後的文件存入暫存區,再git commit將文件從暫存區提交至版本庫才可以,這和svn有很大的區別,SVN在添加新文之後每次修改的文件直接commit就可以了。
㈨ Git撤銷與合並
1. git init
創建一個空的git repo,也就是創建一個.git的子目錄,這個目錄包含了幾乎所有git存儲和操作的東西。新初始化的.git目錄的典型結構如下:
description文件僅供git web程序使用,平常無需關心。
config文件包含項目特有的配置選項。
info目錄包含一個全局性排除文件,用以放置那些不希望被記錄在.gitignore文件中的忽略模式。
hooks目錄包含客戶端或服務端的鉤子腳本。
HEAD文件指向目前被檢出的分支。
index文件(尚待創建)保存暫存區信息。
objects目錄存儲所有數據內容。
refs目錄存儲指向數據的提交對象的指針。
git的默認分支名字是master,git init時默認創建它。
2. git的三種狀態,以及工作區(Working directory),暫存區(Index),HEAD
Git 有三種狀態,你的文件可能處於其中之一:已修改(modified)、已暫存(staged)和已提交(committed)
基於剛才init的git project,做一些改動。
會看到在git add之後,.git下面多了一個index文件。
這時候,所做的改動就處於已暫存狀態,體現在index文件中。
可以利用以下命令查看git緩存了的內容。
同時,.git/objects下面多了一個子文件夾,並生成了一個新文件。這個新文件就對應了剛才所做的改動。這就是git存儲內容的方式--一個文件對應一條內容,以該內容加上特定頭部信息一起的SHA-1校驗和作為文件名。校驗和的前兩個字元用於命名子目錄,餘下的38個字元則作為文件名。後面會詳敘。
可以通過cat-file命令從git那裡查看存儲的內容。
git cat-file -p
由於file1.txt的內容為空,所以這里顯示為空。
這時候可以往file1.txt里添加一些內容,並git add。可以看到.git/objects又多了一個object。
查看這個新的對象的內容以及類型。會發現它是一個blob對象。
接下來commit這個change。
myProject $ git commit -m "first commit"
查看這個commit 對象的類型以及內容,commit的tree對象所指向的內容, 我們會發現,這個tree指向的是一個blob,而這個blob的內容,就是我們剛剛做過改動的文件。
同時,我們查看一下暫存區的內容:
會發現,暫存區指向的也是同樣的blob對象。
至此,一個commit就提交了,工作區,暫存區,以及head又指向了同樣的內容。
它們更新內容的順序為,工作區->暫存區->head
3. git reset
將做過的change撤銷掉,就像沒有發生過一樣。
git reset 應用的順序為 head->暫存區->工作區。
(1) git reset --soft
當前,git的狀態如下。
head指向的內容為:
(head是當前分支引用的指針,總是指向該分支上的最後一次提交。)
index指向的內容為:
(索引是你的預期的下一個提交)
我們來進行一次reset。(移動HEAD, --soft)
--soft將僅僅移動HEAD的指向,而並不會移動index以及工作區。
HEAD 指的是HEAD的父節點。HEAD 是父節點的父節點,也可以寫成HEAD 2.
所以這個命令本質上是撤銷了上一次git commit命令。
(2) git reset --mixed
接下來,再通過reset來更新索引。(--mixed,默認行為)
(3) git reset --hard
reset更新工作目錄(--hard)
git reset --hard HEAD~
--hard標記是reset命令的危險用法,它也是git會真正銷毀數據的幾個操作之一。
如果這個commit已經被推送到遠端,可以用這個命令使遠端也回退到相應的版本。
git push origin <branch> --force
4. git revert
將做過的change撤銷掉,通過「反做」某一個版本,用一個新的commit來消除做過的change。
當前git的狀態:
revert其中一個commit:
再來看,多了一個commit,也就是用來revert的commit:
而若是想要revert某個版本,但是在這個版本後又做過change,則在revert的過程中可能出現沖突,則需要解決沖突之後再提交。
5. git merge 與git rebase
先來講講git merge。
當前master 和 dev branch:
接下來打算將dev的工作並入master分支。
另外,還想將master的工作也並入dev。
git merge之後,會發現dev branch指向了與master相同的commit:
所以,git merge是把兩個分支的最新快照,以及兩者最近的共同祖先進行三方合並,合並的結果是生成一個新的快照。
接下來,用git rebase來合並分支。
當前的git狀態
此時,採用git rebase,將dev的工作並入到master。
當在master branch上執行git rebase dev的時候,實際發生的事情是,找到master和dev兩個分支的最近共同祖先,對比當前分支(master分支)相對於該祖先的歷次提交,提取相應的修改並存為臨時文件,然後將master分支指向目標基底(dev的head指向的commit),最後以此將之前另存為臨時文件的修改依序應用。
可以看到,rebase使得提交歷史更加整潔。盡管實際的開發工作是並行在不同branch上進行的,但是它們看上去就像是串列的一樣,提交歷史是一條直線沒有分叉。
因此,變基是將一系列提交按照原有次序依次應用到另一分支上,而合並是把最終結果合在一起。這兩種方式,整合的最終結果所指向的快照始終是一樣的,只不過提交歷史不同。
㈩ git 怎麼add 文件夾下文件夾的文件
如果文件名沒什麼特別, 那意思就是一樣的. Shell里 "" 通常用來包含特殊文件名的文字和轉義. 比如假如你的文件名里有空格, 那麼就只能使用後面一種: yarco@me git$ ls -ltotal 0-rw-r--r-- 1 yarco staff 0 3 9 08:14 A 1.txt-rw-r--r-- 1
