git未跟蹤的文件夾
❶ git gitignore 這樣寫卻無法忽略目錄,怎麼都無法忽略目錄
這個文件是後來添加上的.
這些已經添加的文件不會自動從git中去掉, 需要你手動完成. 如果是在第一次用git跟蹤這些文件之前就添加了.gitignore文件, git就不會添加這些文件. 看你的描述, 應該是你先用git管理了所有的文件後, 才添加的.gitignore文件. 但是你上面的那些文件夾已經被git添加完了.
git不會跟蹤空文件夾, 如果你需要保留空文件夾, 可以在文件夾裡面添加一個空白文件. 類似 .gitkeep,轉載,僅供參考。
❷ git的工作原理
git的工作總共分四層,其中三層是在自己本地也就是說git倉庫,包括了工作目錄、暫存區和本地倉庫。工作目錄就是我們執行命令git init時所在的地方,也就是我們執行一切文件操作的地方;暫存區和本地倉庫都是在.git目錄下,因為它們只是用來存數據的。遠程倉庫在中心伺服器,也就是我們做好工作之後推送到遠程倉庫,或者從遠程倉庫更新下來最新代碼到本地。Git所存儲的都是一系列的文件快照,然後git 來跟蹤這些文件快照,發現哪個文件快照有變化他就會提示你需要添加到暫存區或是提交到本地倉庫來保證你的工作目錄是干凈的。
這個要怎麼理解呢?git中的文件有兩種狀態,一種是被跟蹤的,也就是提交到本地倉庫的文件,因為本地倉庫要保管它們當然要跟蹤他們,對他們負責,還有一種就是未被跟蹤的。那麼當我們添加新的文件時,他不是被跟蹤的,因為本地倉庫裡面沒有這個文件,他是外來的,本地倉庫目前還不需要對他們負責。但是如果是對倉庫已經存在的文件進行修改,那麼這些文件就是被跟蹤的文件,就可以通過git status查看他們的狀態來進行相應的操作。當然我們也可以生成一個.gitignore文件,裡面指定要忽略的文件類型,然後這些文件就不會被跟蹤,不管怎麼改變他們,git status都不會提示你需要做什麼操作。
所以當我們在工作目錄中進行文件操作後,要先添加到暫存區,然後再將暫存區中剛添加的文件快照提交到本地倉庫,然後再將本地倉庫的最新狀態文件快照推送到遠程倉庫。這個文件快照其實就是各個文件在被添加到暫存區時的狀態,就和照相的一樣,留下每個不同時刻的快照,方便以後查詢,而git存儲的就是這些一系列的快照。說到這個快照就要說說git的對象了。
Git對象
在.git-》Objects文件夾是一個個的git對象,是38位的哈希值,這樣就意味著沒有兩個相同的對象名。
從根本上講,git是一套內容定址的文件系統,它存儲的也是key-value鍵值對,然後根據key值來查找value的,說到定址就會想到指針吧,不錯,git也是根據指針來定址的,這些指針就存儲在git的對象中。Git一共有四種對象,commit對象,tree對象和blob對象和tag對象,這里可以理解tag是commit的別名,下面便是這三個對象:
每個目錄都創建了「tree」對象, 每個文件都創建了一個對應的「blob」對象。最後有一個「commit」對象來指向根「tree」對象,這樣我們就可以追蹤項目每一項提交內容。
這個blob對象對應的就是文件快照中那些發生變化的文件內容,而
tree對象則記錄了文件快照中各個目錄和文件的結構關系,它指向了被跟蹤的快照,
commit對象則記錄了每次提交到本地倉庫的文件快照,
從在開發過程中,我們會提交很多次文件快照,那麼第一次提交的內容會用一個commit來記錄,這個commit 沒有指針指向上一個commit對象,因為沒有上一個commit,他是第一個,當第二次提交時,又會有另外一個commit對象來記錄,那麼這次commit對象中就會有一個指針指向上一次提交後的commit對象,經過很多次提交後就會有很多的commit對象,它們組成了一個鏈表,當我們要恢復哪個版本的時候,只要找到這個commit對象就能恢復那個版本的文件。而我們所謂的HEAD對象其實就是指向最近一個提交的commit對象,也就是最後一個commit對象。
❸ Android studio未跟蹤怎麼變為已跟蹤文件
在進行使用項目的過程中就需要進行創建一個文件,彈出了一個為add file 投 git這是在創建一個文件都會彈出一個框,先進行點擊」No「,就不會直接git跟蹤當前的文件。
這樣在項目中的文件就創建完成了,可以看到當前的文件顏色顯示為紅色的。說明當前的文件是屬於未跟蹤的狀態的文件。
把創建的文件添加為已跟蹤的狀態,點擊菜單中的VCS,彈出了一個下拉的菜單,進行點擊git的選項,移動下一級的菜單,直接點擊「add」的選項。
這樣話當前的文件已變為已跟蹤的狀態,查看到文件文字的顏色已變為了綠色。
把當前的文件上傳到github的代碼倉庫中,可以點擊菜單中的CVS的選項,彈出了一個git,移動到下一級的菜單,直接點擊push的選項。
當前編輯的文件,提交git的代碼倉庫中之後,這樣這個編輯的文件的昵稱的顏色變為了黑色的字體,說明的是這個文件已提交過到代碼倉庫中。
❹ git怎麼上傳文件夾
1、首先在git空間上面創建一個新項目,項目名稱跟需要上傳的項目名稱一致。
❺ GIT的增加內容
增加內容跟蹤信息:git add
為了簡明起見,我們創建兩個文件作為練習: $echo"Helloworld">hello$echo"SnakeZero">snake我們再用 git add 命令將這兩個文件加入到版本庫文件索引當中: $gitaddhellosnakegit add 實際上是個腳本命令,它是對 git 內核命令 git update-index 的調用。因此上面的命令和下面的命令其實是等價的: $gitupdate-index--addhellosnake如果你要將某個文件從 git 的目錄跟蹤系統中清除出去,同樣可以用 git update-index 命令。例如: $gitupdate-index--force-removefoo.cNote
git add 可以將某個目錄下的所有內容全都納入內容跟蹤之下,例如: git add ./path/to/your/wanted 。但是在這樣做之前,應該注意先將一些我們不希望跟蹤的文件清理掉,例如,gcc 編譯出來的 *.o 文件,vim 的交換文件 .*.swp 之類。
應該建立一個清晰的概念就是,git add 和 git update-index 只是刷新了 git 的跟蹤信息,hello 和 snake 這兩個文件中的內容並沒有提交到 git 的內容跟蹤范疇之內。
普通用戶總是應該使用 git add, 而不要使用上面提到的 update-index內部命令。
添加所有未跟蹤文件用 git add -A, 添加所有未跟蹤文件並且提交用 git commit -a。(注意大小寫)
從當前跟蹤文件中刪除用 git reset HEAD <filename>。事實上也就是用當前 HEAD(commited) 中的內容替換掉 index(staging) 的內容。
❻ git init命令是什麼意思是不是在哪個文件夾下使用這個命令,這個文件夾就變成庫了
git init就是git庫初始化的命令。如你所說,在任何一個文件夾下執行就是初始化這個文件夾,此時執行git status,可以看到文件夾下的所有文件都變成未被跟蹤的文件。
❼ 如何查看git提交到本地的文件
代碼提交
代碼提交一般有五個步驟:
1.查看目前代碼的修改狀態
2.查看代碼修改內容
3.暫存需要提交的文件
4.提交已暫存的文件
5.同步到伺服器
1. 查看目前代碼的修改狀態
提交代碼之前,首先應該檢查目前所做的修改,運行git status命令
a) 已暫存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示刪除文件
b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示刪除文件
另外,git 給出了可能需要的操作命令,git add/rm, gitcheckout --
c) 未跟蹤 (untracked files)
2. 查看代碼修改的內容
git diff <file>
比較某文件與最近提交節點的差異。
注意:如果該文件已暫存,那麼應該使用git diff –cached<file>
git diff <hashcode> <hashcode> <file>
比較某文件在提交節點a,節點b的差異。
技巧:如果省略後面一個hashcode,則默認表示與上一提交節點比較。(也可以利用^運算符)
3. 暫存需要提交的文件
如果是新建的文件
則git add <file>
如果是修改的文件
則git add <file>
如果是刪除的文件
則 git rm <file>
4. 提交已暫存的文件
git commit
注意注釋填寫規范。
git commit --amend
修改最近一次提交。有時候如果提交注釋書寫有誤或者漏提文件,可以使用此命令。
5. 同步到伺服器
同步到伺服器前先需要將伺服器代碼同步到本地
命令: git pull
如果執行失敗,就按照提示還原有沖突的文件,然後再次嘗試同步。
命令:git checkout -- <有沖突的文件路徑>
同步到伺服器
命令: git push origin <本地分支名>
如果執行失敗,一般是沒有將伺服器代碼同步到本地導致的,先執行上面的git pull命令。
❽ git什麼是未跟蹤文件
就是首次新添加的文件,從未被納入版本庫的
❾ 如何在git伺服器上查看提交的文件
代碼提交
代碼提交一般有五個步驟:
1.查看目前代碼的修改狀態
2.查看代碼修改內容
3.暫存需要提交的文件
4.提交已暫存的文件
5.同步到伺服器
1. 查看目前代碼的修改狀態
提交代碼之前,首先應該檢查目前所做的修改,運行git status命令
a) 已暫存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示刪除文件
b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示刪除文件
另外,git 給出了可能需要的操作命令,git add/rm, gitcheckout --
c) 未跟蹤 (untracked files)
2. 查看代碼修改的內容
git diff <file>
比較某文件與最近提交節點的差異。
注意:如果該文件已暫存,那麼應該使用git diff –cached<file>
git diff <hashcode> <hashcode> <file>
比較某文件在提交節點a,節點b的差異。
技巧:如果省略後面一個hashcode,則默認表示與上一提交節點比較。(也可以利用^運算符)
3. 暫存需要提交的文件
如果是新建的文件
則git add <file>
如果是修改的文件
則git add <file>
如果是刪除的文件
則 git rm <file>
4. 提交已暫存的文件
git commit
注意注釋填寫規范。
git commit --amend
修改最近一次提交。有時候如果提交注釋書寫有誤或者漏提文件,可以使用此命令。
5. 同步到伺服器
同步到伺服器前先需要將伺服器代碼同步到本地
命令: git pull
如果執行失敗,就按照提示還原有沖突的文件,然後再次嘗試同步。
命令:git checkout -- <有沖突的文件路徑>
同步到伺服器
命令: git push origin <本地分支名>
如果執行失敗,一般是沒有將伺服器代碼同步到本地導致的,先執行上面的git pull命令。
❿ git中有些命令按tab沒有提示,比如git cat-file、git ls-files等。是什麼原因啊
1,未被跟蹤的文件(untracked file)
2,已被跟蹤的文件(tracked file)
2.1,被修改但未被暫存的文件(changed but not updated或modified)
2.2,已暫存可以被提交的文件(changes to be committed 或staged)
2.3,自上次提交以來,未修改的文件(clean 或 unmodified)
Git把它所管理的所有對象(blob,tree,commit,tag……),全部根據它們的內容生成SHA1哈希串值作為對象名;根據目前的數學知識,如果兩塊數據的SHA1哈希串值相等,那麼我們就可以認為這兩塊數據是相同的。這樣會帶來的幾個好處:
1,Git只要比較對象名,就可以很快的判斷兩個對象的內容是否相同。
2,因為在每個倉庫(repository)的「對象名」的計算方法都完全一樣,如果同樣的內容存在兩個不同的倉庫中,就會存在相同的「對象名」。
3,Git還可以通過檢查對象內容的SHA1的哈希值和「對象名」是否匹配,來判斷對象內容是否正確。
4,根據上面的原則:Git確實根據內容來生成名字的,而且同名(SHA1哈希串值)肯定會有相同內容,但是提交對象(commit)和其它對象有點不一樣,它裡面會多一個時間戳(timestamp),所以在不同的時間生成的提交對象,即使內容完全一樣其名字也不會相同。