Home php c# sql c c++ javascript python java go android git linux asp.net django .net node.js ios xcode cocoa iphone mysql tomcat mongodb bash objective-c scala visual-studio apache elasticsearch jar eclipse jquery ruby-on-rails ruby rubygems android-studio spring lua sqlite emacs ubuntu perl docker swift amazon-web-services svn html ajax xml java-ee maven intellij-idea rvm macos unix css ipad postgresql css3 json windows-server vue.js typescript oracle hibernate internet-explorer github tensorflow laravel symfony redis html5 google-app-engine nginx firefox sqlalchemy lucene erlang flask vim solr webview facebook zend-framework virtualenv nosql ide twitter safari flutter bundle phonegap centos Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 32

0
votes
answers
7 views
+10

Git Option不再顯示在Android Studio中

1

我錯過了Android Studio - > VCS中的git選項。一會兒,幾分鐘後它就消失了,我不知道爲什麼會發生這種情況。Git Option不再顯示在Android Studio中

你能幫我嗎?

這是我所看到的:

enable version control Integration

和:

Checkout from Version control

沙发
0
0

它主要是由於的Git整合插件被禁用。你應該啓用插件:

文件 - >設置 - >插件 - > serch git - >啓用Git集成 - >確定 - >重新啓動AS。

enter image description here

+0

非常感謝。我不知道爲什麼該插件已被停用。 – Hierarchy

板凳
0
0

做檢查:

  • ,你仍然有.git在您的項目
  • Settings | Version Control確實顯示Git的整合爲活動(再:「‘VCS’ - >‘啓用版本控制集成’。」,因爲你展示,應該有GIT)
+0

有一個git文件夾。我剛剛用它來推命令提示符。 不,沒有設置|版本控制了。我也嘗試重新安裝android studio,但它仍然丟失.. 我忘了告訴你,我從我的一個同學使用macos得到我的項目。因此,我只是將src文件夾導入到一個新項目中。 – Hierarchy

0
votes
answers
7 views
+10

Git Bash Windows:管道輸出ls -t | head -n 3到cp

1

我想使用Git Bash將我最近下載的3個文件複製到另一個目錄。我可以用Git Bash Windows:管道輸出ls -t | head -n 3到cp

ls -t ~/Downloads|head -n 3

一一列舉了,但我怎麼將它們作爲輸入到CP的功能,這樣我可以 將它們拷貝到其他目錄?

我很新的編程和Bash,所以我很抱歉,如果這是顯而易見的。

+2

這與git無關,實際上只是一個bash問題。你在找什麼是xargs。 –

沙发
0
1

注意:你不需要的Git的bash複製這些文件:如果你已經添加<git>/usr/bin%PATH%(如I do here, with this simplified PATH),你可以在任何常規CMD會議Linux命令序列:

[email protected] D:gitgit 
> where xargs 
D:prgsgitlatestusrinxargs.exe 

[email protected] D:gitgit 
> ls -t|head -3|xargs | xargs -I{} echo "{}" a 
wt-status.h wt-status.c worktree.h a 

另請參閱「pass output as an argument for cp in bash」,其中提到了xargs。
其他選項(cp $(ls -t | head -3) Directory)必須只在bash中。

+0

謝謝你的回覆! –

+0

@RawNoob當然。不要忘記閱讀https://stackoverflow.com/help/someone-answers – VonC

0
votes
answers
6 views
+10

權限被拒絕npm install的錯誤

0

剛剛重新安裝了我的ubuntu,並且安裝了必要的東西,如nodejs npm。如果我克隆項目,並試圖sudo npm install我得到了這個錯誤。有人有同樣的問題?權限被拒絕npm install的錯誤

使用 節點:8.9.3 NPM:5.5.1

fetchPackageMetaData error for [email protected]://github.com/gulpjs/gulp.git#4ed9a4a3275559c73a396eff7e1fde3824951ebb Command failed: /usr/bin/git clone -q git://github.com/gulpjs/gulp.git /home/user_name/.npm/_cacache/tmp/git-clone-0e191fc9 

fetchPackageMetaData /home/user_name/.npm/_cacache/tmp/git-clone-0e191fc9/.git: Permission denied 

Error: Command failed: /usr/bin/git clone -q git://github.com/gulpjs/gulp.git /home/user_name/.npm/_cacache/tmp/git-clone-0e191fc9 

/home/user_name/.npm/_cacache/tmp/git-clone-0e191fc9/.git: Permission denied 
+0

https://stackoverflow.com/questions/31744852/npm-install-giving-error-while-accessing-git-url這個問題可能有幫助。 – evolutionxbox

+0

npm與安裝節點一起安裝...我避免使用sudo ...如果使用sudo安裝節點,則所有npm install命令也必須發出sudo ...如果您在安裝過程中避免使用sudo,請不要使用'sudo npm安裝x' ...安裝沒有sudo可以是原始代碼安裝或編譯安裝...閱讀內嵌評論 https://askubuntu.com/questions/426750/how-can-i-update-my -nodejs到了,最新版本/ 959382#959382 –

沙发
0
0

安裝節點沒有sudo和你不會得到拒絕 「權限錯誤」。

sudo npm install node

使用此命令:

npm install node

0
votes
answers
6 views
+10

詹金斯管道里面的碼頭裏面的Git不工作

1

我想在一個作爲詹金斯管道的一部分運行的碼頭容器裏面執行一些git查詢。 在Docker容器的外面,sshsgent工作正常,我可以訪問我的SCM沒有問題。在容器內部,我得到了主機密鑰驗證問題。
任何人都可以幫我解決我犯的錯誤嗎?詹金斯管道里面的碼頭裏面的Git不工作

script { 
    sshagent(['e9f7d09a-7b88-4bf7-814c-464f811d9519']) 
    { 
     sh(""" 
      ssh -p 7999 [email protected] whoami 
     """) 
    } 
    docker.withRegistry('https://dockerhub.banana.com', 'banana-dockerhub-credential') 
    { 
     docker.image('banana_release_base').pull() 
     docker.image('banana_release_base').inside(
     ''' 
      -v /system:/system -v /tmp:/tmp --privileged -u 0 
     ''' 
     ) 
     { 
      sshagent(['e9f7d09a-7b88-4bf7-814c-464f811d9519']) 
      { 
       sh(""" 
        echo $SSH_AUTH_SOCK 
        ssh -p 7999 [email protected] whoami 
       """) 
      } 
     } 
    } 
} 

首先WHOAMI呼叫輸出:

[docker_git_test] Running shell script 
+ ssh -p 7999 [email protected] whoami 
d42967b44abe31d6 

第二呼叫(和回聲)在搬運工容器輸出:

[docker_git_test] Running shell script 
+ echo /tmp/ssh-dSoDZMggpAU1/agent.13 
/tmp/ssh-dSoDZMggpAU1/agent.13 
+ ssh -p 7999 [email protected] whoami 
Host key verification failed 
沙发
0
2

主機鍵驗證失敗

S容器中的SH連接無法驗證主機的(bitbucket-eng-gpk1.com)身份,這是它失敗的原因。當詹金斯提供一個容器時,它會試圖限制外部世界的事物數量,比如環境變量和文件系統的位置,這些構建步驟會被隔離。在您的容器中,它在進行連接之前未接受VCS的主機密鑰,並且它不是交互式終端,因此會失敗。

有幾種不同的方法來處理這個問題。下面是一些我能想到的把我的頭頂部:

  • 忽略主機密鑰檢查(明白這個(安全隱患12)) - 使用StrictHostKeyChecking選項來禁用檢查。 UserKnownHostsFile選項可以在連接其他地方管理接受的鍵時使用。這也可以通過~/.ssh/config文件中的每個主機完成。

    ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p 7999 [email protected] whoami 
    
  • 建立SSH密鑰進入多克爾圖像(脆)

  • 掛載~/.ssh/config文件到從與
  • 主機的容器從主「安裝」一些SSH配置文件,或者使用一些其他配置文件提供程序已將驗證的主機密鑰裝入容器(可能使用Config File Provider Plugin
+0

謝謝!我以錯誤的方式看待:/我認爲主持人阻止了我的鑰匙。 已添加到.ssh/config文件中,它現在正在工作:) 再次感謝 –

+0

@ user2961873在這種情況下,您應該看到喜歡'denied:public key'(或類似的東西)的東西來向您顯示身份驗證失敗。 – mkobit

板凳
0
1

只是爲了顯示我的工作。在mkobits的建議上,我在sh命令中添加了兩行來編寫解決問題的ssh配置文件。

sshagent(['e9f7d09a-7b88-4bf7-814c-464f811d9519']) 
     { 
      sh(""" 
       echo $SSH_AUTH_SOCK 
       mkdir ~/.ssh 
       echo 'Host *
 StrictHostKeyChecking no' > ~/.ssh/config 
       ssh -p 7999 [email protected] whoami 
      """) 
     } 

它可以內置到dockerfile中,但由於我使用共享映像,所以這種方式適合我的目的。

編輯:我已經加入到dockerfile如此,我們在這裏:

RUN useradd -r -u 1000 builder 
COPY config /home/builder/.ssh/config 
RUN chown builder:builder /home/builder/.ssh/* 
USER builder 
ENTRYPOINT ["/bin/bash"] 

添加非root用戶,這樣文件不會留在工作區的根。 需要運行chown,並將添加的文件添加到作爲所有者的根。 獲取添加的配置文件是:

Host * 
    StrictHostKeyChecking no 

乾杯!

0
votes
answers
6 views
+10

不能將文件添加到git commit

1

我在這個論壇嘗試了幾個解決方案,但我不能添加要提交的文件。我使用git add -A,但我的git bash只是凍結。我已經刪除了index.lock文件。似乎每次運行git add -A時都會創建,但沒有任何反應。它只是一個閃爍的光標坐在那裏。我升級了我的git bash,重新初始化了我的項目,但它仍然是同樣的問題。我從下面的線程以及類似的嘗試了多種解決方案:不能將文件添加到git commit

Another git process seems to be running in this repository

完整的錯誤:

Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue.

我使用的是Windows 10,並使用原子是否有幫助。

+0

你提交了多少個文件?你還等多久? – Shadow

沙发
0
1

首先,使用Process Explorer來檢查是否確實有其他git進程仍在運行。

其次,檢查什麼your untracked files(即您要添加到索引)是:

git ls-files --others --exclude-standard 

你可能有太多:調整.gitignore相應。

一旦做到這一點,再試一次,從CMD會話(接近凌動)


正如the comments提到的the OP,這個問題是來自一個名爲「Aux」文件夾中。 。
而且,如在「Why can't we make CON, PRN, Null folder in Windows?」解釋說,不能創建或刪除一個名爲「Aux"文件夾

理想情況下,你會先刪除它:

DEL \.c:path	oAux 

那麼你可以嘗試git add -A再次

+0

這有點幫助。我試着上傳一個React Js項目,所以我不確定你是否熟悉,但是我能夠上傳除包含我的項目文件itsel的文件夾以外的所有內容F。我已經擺脫了我的node_modules文件夾,它顯着減少了文件大小和數量,但仍然有些東西仍然凍結。我的項目文件夾不是特別大,並且其中的文件很少(與我能夠上傳的其他文件夾相比),但我不確定是什麼限制了它?有沒有辦法將它進一步縮小到一個文件或文件夾或某種類型,而不必一個一個去? – user2247061

+0

以及我發現問題文件夾。它的一個文件夾,我無法編輯,由於一些權限錯誤,我無法在Windows中更改它。我試圖刪除文件夾,但它說文件夾太大,但只有一個JavaScript文件,那裏是1kb。我重命名了它,製作了它的一個副本,但權限錯誤仍然阻止我。該文件夾被命名爲「Aux」,並且好像我使用該名稱上的權限立即更改。雖然我還沒有嘗試過改變權限(或最初改變它),當我通過git bash創建這個文件夾。 – user2247061

+0

@ user2247061你可以從CMD會話(而不是bash)中刪除它嗎? – VonC

0
votes
answers
6 views
+10

讓`git svn find-rev`搜索整個版本庫

1

當我想要根據SVN修訂版本id獲取提交的本地散列時,我通常運行git svn find-rev。但是,一個很大的不便之處在於,該命令只會查找當前分支中的提交或修訂後的命令中明確指定的分支。讓`git svn find-rev`搜索整個版本庫

有時,我只知道修訂ID,我想在不知道分支名稱的情況下找到本地散列。有沒有辦法用git svn find-rev來做到這一點?這是有道理的,知道SVN修訂是獨一無二的。

編輯:

事實證明,沒有做到這一點沒有什麼好辦法。 我接受了答案,該答案提供了一個解決方案,但搜索具有大量分支的存儲庫(如我的)需要很長時間。最後我寫我自己的殼功能,結合使用常規svngit svn,其工作方式要快得多:

gitrev() 
{ 
    if [ -z "$1" ]; then 
    echo "${FUNCNAME[0]} <revision> [git_args]" 
    return 1 
    fi 
    local rev b 
    rev="$1" 
    shift 
    b="$(svn log -v -c "$rev" "$SVN_BRANCHES_URL" | grep -m1 -Po '/branches/K[^/]+')" && 
    git svn find-rev "r${rev#r}" "origin/$b" "[email protected]" 
} 

如果你使用它,你可能需要更換grep -P一部分,如果你不是在GNU/Linux操作系統。可以使用或不使用「r」前綴來指定修訂版本。

沙发
0
1

要在所有地方分公司,你可以通過電子郵件進行搜索。 G。做

git for-each-ref --format='%(refname)' refs/heads/ | xargs -l git svn find-rev r123456 

擁有它更可靠,但仍快,你可以用一點點做更復雜的線條,看起來在所有裁判,直到找到一個匹配,然後中止,E。 G。像

while read ref; do result="$(git svn find-rev r123456 "$ref")"; [ -n "$result" ] && echo $result && break; done < <(git for-each-ref --format='%(refname)') 
+0

似乎喜歡它,但在我的情況下,我也必須搜索遠程分支機構,這需要很多時間。 – Thunderbeef

+0

是的,可能需要相當長的一段時間,特別是如果你有很多參考資料,並且你的電子郵件。 G。給所有的參考文獻,修訂版本在多個分支,或者在一些分支和一些標籤中,你會多次得到結果。但這是我所知道的唯一的方式。否則,您必須編寫一個基本相同的循環,並在找到結果後立即停止。 – Vampire

+0

好吧,我發佈了另一個可以在整個存儲庫中可靠工作的單線程,並在找到某個東西后立即停止。您可以通過向e添加排序來修改它。 G。先查看本地分支,然後查看遠程分支,然後查看標籤或類似的東西。 – Vampire

板凳
0
0

git svn find-rev確實顯示來自當前分支的提交sha-1值。但你可以使用shell腳本搜索整個回購的提交。

這樣的,如果你想從修訂r9相應提交的,那麼你可以爲r9如下指定變量rev值:

#!/bin/sh 

rev="r9" 
for branch in $(git branch -r) 
do 
{ 
    git checkout $branch 
    sha=$(git svn find-rev $rev) 
    if [ ! -z "$sha" ]; then 
    { 
    echo "The revision $rev has the corresponding commit is $sha. And the commit is on $branch branch." 
    break 
    } 
    fi 
} 
done 
0
votes
answers
6 views
+10

git-upgrade ERR!恢復初始來源(反應母語-混帳升級)

-2

我想升級我的陣營本地項目版本git-upgrade ERR!恢復初始來源(反應母語-混帳升級)

,但文我使用的反應,本機的git升級升級,是錯誤的

這是我的代碼在終端

react-native-git-upgrade 0.48.0

升級,但它是錯誤的,看看這幅畫 this is error picture

我應該怎麼現在做?

它在XCode9 MacOS的塞拉利昂運行10.12.6

電流反應原生版本是0.44

我想升級到0.48.0

+0

請嵌入有問題的圖像。 –

+0

請更具體一些:你做了哪些步驟?你期待什麼發生?什麼是錯誤?你想達到什麼目的?你使用哪種程序/操作系統和版本? – pedrorijo91

+0

對不起,我編輯我的問題,期待您的回覆 –

沙发
0
0

如果你想要的僅僅是有一個新的版本的反應原生,然後只需更新package.json中的版本並在項目文件夾上運行「npm install」。

你的問題是另一個,主要與git的工作方式有關。

+0

我曾經使用npm install,但會有很多丟失的文件,所以我使用react-native-git-upgrade。 –

0
votes
answers
6 views
+10

go-git:如何在遠程服務器上進行身份驗證?

0

我使用go項目go-git作爲git-client,並想從通過gitea託管的私有git存儲庫中獲取。go-git:如何在遠程服務器上進行身份驗證?

執行此操作的相應功能是func (r *Remote) Fetch(o *FetchOptions) error,它需要transport.AuthMethod對象進行身份驗證。

我試過如下:

repo, _ := git.PlainOpen("/path/to/project/folder") 
err := repo.Fetch(&git.FetchOptions{ 
    Auth: http.NewBasicAuth("someUser", "andThePassword"), 
}) 

...這只是返回:

無效的授權方法

如果我使用

authenticator, _ := ssh.NewSSHAgentAuth("git") 
同樣的情況,

從包"gopkg.in/src-d/go-git.v4/plumbing/transport/ssh"

並且如果我使用證書:

authenticator, _:= ssh.NewPublicKeysFromFile("gitea name", "/home/name/.ssh/id_rsa", "passphrase") 

如何找出哪個身份驗證方法的支持,並在那裏的transport.AuthMethod,我可以用現有的實現?

+0

您的使用看起來正確的我,也許有一個bug?該項目最近有一個問題[#618](https://github.com/src-d/go-git/issues/618),可能表明有用的解決方法:'&git.CloneOptions {URL:「https: //user:[email protected]/repo.git「}' – orirawlings

+0

@orirawlings這樣的url只能在克隆新存儲庫時應用。當我已經擁有本地版本庫時,我用'PlainOpen'打開它,然後使用'Fetch',爲此我無法再指定URL。 (URL是從'.git/config'文件中獲得的,即使我在那裏修改了url,它也會返回「invalid auth method」 – maja

+0

你使用哪種協議?HTTP或者SSH?或者git? – mcuadros

沙发
0
0

這裏的問題是,我使用了錯誤的http-package來獲取authenticator。

我使用了包net/http中的BasicAuth() - 但是,要使用的正確http包是gopkg.in/src-d/go-git.v4/plumbing/transport/http

更改導入並從那裏使用(兼容)BasicAuth-authenticator時,它可以完美地工作。

板凳
0
0

這個工作對我gopkg.in/src-d/go-git.v4

func cloneGit() (err error) { 
    username := "dude" 
    password := "super-secret-Personal-access-token" 
    repo := "github.build.company.com/org/repo-name.git" 
    url := fmt.Sprintf("https://%s:%[email protected]%s", username, password, repo) 
    options := git.CloneOptions{ 
     URL:  url, 
     Progress: os.Stdout, 
    } 
    r, err := git.PlainClone("./src", false, &options) 

    if err != nil { 
     return err 
    } 
    fmt.Println(r.Log) 
    return err 
} 
0
votes
answers
6 views
+10

是否有可能獲得最後拉的提交數量?

2

假設我從回購中更改我的本地存儲庫。我所做的更改包括4次提交。有什麼辦法可以獲得最近的「git pull」中的提交數量嗎?謝謝!是否有可能獲得最後拉的提交數量?

+1

拉後還是之前? –

+0

@JohnZwinck拉後。 –

沙发
0
4

Git存儲之前的狀態以供參考,您可以使用<refname>@{<n>}語法來查詢它們。拉操作執行合併,從而更新HEAD和分支引用。在使用[email protected]{1}(或[email protected]{1}作爲分支參考)更新之前,可以找到HEAD的狀態,然後找到帶有[email protected]{1}..HEAD的已提交提交的範圍。然後,你可以做這個犯任何你想要的:

具體參考ORIG_HEAD可以用來代替[email protected]{1},但<refname>@{<n>}是更普遍和更強大的學習工具。

+1

這個答案是正確的(並且upvoted),但我認爲值得一提的是,'git pull'實際運行*兩個* Git命令,它們是'git fetch',後面跟着你選擇的第二個命令 - 默認是'git merge',但你可以選擇'git rebase'。無論是merge還是rebase,它都是* second *命令,用於更新'HEAD'並因此設置'ORIG_HEAD'並創建一個reflog條目。你會在'git merge'和'git rebase'文檔中找到'ORIG_HEAD'。 'git pull'有一些罕見的角落案例,它不運行第二個命令;在這種情況下,沒有更新。 – torek

0
votes
answers
6 views
+10

不正確的嵌套列表格式

0

我有以下的降價片斷,這將是在Github上可見:不正確的嵌套列表格式

1. Ask a supervisor for a `cmprod.pem` file and move it into the `~/.ssh` folder. 
2. Run `chmod 600 ~/.ssh/cmprod.pem` 
3. Run `eb ssh` and type `yes` when it asks if you would like to add the key to your keychain. 
4. Once connected via SSH, to access the application's source code, perform the following steps 
   - `sudo docker ps` 
   - Copy the desired value from the `CONTAINER ID` column 
    - Run `sudo docker exec -it $CONTAINER_ID rails c` using the copied value. 

的問題是,嵌套列表(第4步下三個要點)是不正確的格式。他們最終看起來像這樣:

  1. 向主管的cmprod.pem文件,並將其移動到文件夾~/.ssh
  2. 運行chmod 600 ~/.ssh/cmprod.pem
  3. 運行eb sshyes類型時,它問你是否想將鍵添加到您的鑰匙串。
  4. 通過SSH一旦連接,來訪問應用程序的源代碼,執行以下步驟 - sudo docker ps - 使用複製的值從CONTAINER ID
    • 運行sudo docker exec -it $CONTAINER_ID rails c所需的值複製。
沙发
0
1

這取決於您正在使用哪個規則集。根據GitHub使用的Commonmark(我假設這是因爲[github]標籤而相關的),「列表可以中斷一個段落,也就是說,不需要空行來將段落與下面的列表分開。 「規範的Example 280甚至顯示了一個類似於你的例子。如果它不適合你使用Commonmark解析器,那麼這將是一個錯誤。

但是,如果您不使用Commonmark(或作爲任何Commonmark錯誤的解決方法),那麼Markdown規則要求您在列表和上一段落之間有一個空行。由於父母名單第4項中的文本將是一個段落(在列表項目內),因此該段落和該段落後面的子列表項目之間需要有一個空行。像這樣:

1. Ask a supervisor for a `cmprod.pem` file and move it into the `~/.ssh` folder. 
2. Run `chmod 600 ~/.ssh/cmprod.pem` 
3. Run `eb ssh` and type `yes` when it asks if you would like to add the key to your keychain. 
4. Once connected via SSH, to access the application's source code, perform the following steps 

    - `sudo docker ps` 
    - Copy the desired value from the `CONTAINER ID` column 
    - Run `sudo docker exec -it $CONTAINER_ID rails c` using the copied value. 

記住當嵌套列表項時,你需要遵循所有在列表之外的規則。然後縮進一個級別。因此,舉例來說,一切都嵌套在第4項是這樣的外部列表項:

Once connected via SSH, to access the application's source code, perform the following steps 

- `sudo docker ps` 
- Copy the desired value from the `CONTAINER ID` column 
- Run `sudo docker exec -it $CONTAINER_ID rails c` using the copied value. 

您需要的段落和列表之間的空行。因此,將所有內容嵌套到列表中時,您需要保持相同的格式並保留空白行。僅僅因爲第一行從子彈(或列表號)開始並不意味着它不遵循相同的規則。

最後,即使您使用的是Commonmark解析器,我也會建議使用空白行。這是任何Markdown棉絨都會提出的一種很好的形式。

+0

我試着粘貼你的第一個片段,它的工作原理與上述相同。但我不明白爲什麼它不適用於我的MD文件。你可以看看這個,讓我知道如何編輯它,所以最後列表格式正確? https://gist.github.com/maxp-edcast/9d7bbf0e28a4666dc2b492403cbc5d3b –

+0

刪除您的子列表中項目2前面的縮進並鍵入四個新空格。四個空格中的兩個實際上並不是空格,而是非空格(Unicode字符「xa0」),這使Markdown變得混亂。事實上,每當嵌套列表不起作用時,我總是首先檢查縮進。我在回答(通過計數)之前檢查了你的,但沒有注意到不間斷的空格字符。當我發佈我的答案時,我刪除了縮進並重新創建了它,所以我沒有遇到你的問題。 – Waylan

+0

順便說一句,我發現你的問題,在適當的文本編輯器中打開你的文件,然後打開所有隱藏的字符。它立即顯示了兩個非破壞空間與文檔中的所有其他空間不同。 – Waylan