Github常見操作和常見錯誤!

jopen 9年前發布 | 58K 次閱讀 Github Git 版本控制系統

   學習了一下github的基本命令,弄了大半天了,唉,結合網友的一些資料,總結了一大堆!

     一、如果輸入$ git remote add origin git@github.com:djqiang(github帳號名)/gitdemo(項目名).git 

    提示出錯信息:fatal: remote origin already exists.
    解決辦法如下:
    1、先輸入$ git remote rm origin

    2、再輸入$ git remote add origin git@github.com:djqiang/gitdemo.git 就不會報錯了!

    3、如果輸入$ git remote rm origin 還是報錯的話,error: Could not remove config section 'remote.origin'. 我們需要修改gitconfig文件的內容

    4、找到你的github的安裝路徑,我的是C:\Users\ASUS\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\etc

    5、找到一個名為gitconfig的文件,打開它把里面的[remote "origin"]那一行刪掉就好了!

    二、如果輸入$ ssh -T git@github.com
    出現錯誤提示:Permission denied (publickey).因為新生成的key不能加入ssh就會導致連接不上github。

    解決辦法如下:

    1、先輸入$ ssh-agent,再輸入$ ssh-add ~/.ssh/id_key,這樣就可以了。

    2、如果還是不行的話,輸入ssh-add ~/.ssh/id_key 命令后出現報錯Could not open a connection to your authentication agent.解決方法是key用Git Gui的ssh工具生成,這樣生成的時候key就直接保存在ssh中了,不需要再ssh-add命令加入了,其它的user,token等配置都用命令行來做。

    3、最好檢查一下在你復制id_rsa.pub文件的內容時有沒有產生多余的空格或空行,有些編輯器會幫你添加這些的。

    三、如果輸入$ git push origin master
    提示出錯信息:error:failed to push som refs to .......
    解決辦法如下:
    1、先輸入$ git pull origin master //先把遠程服務器github上面的文件拉下來

    2、再輸入$ git push origin master

    3、如果出現報錯 fatal: Couldn't find remote ref master或者fatal: 'origin' does not appear to be a git repository以及fatal: Could not read from remote repository.

    4、則需要重新輸入$ git remote add origin git@github.com:djqiang/gitdemo.git

    四、使用git在本地創建一個項目的過程
    $ makdir ~/hello-world    //創建一個項目hello-world
    $ cd ~/hello-world       //打開這個項目
    $ git init             //初始化 
    $ touch README
    $ git add README        //更新README文件
    $ git commit -m 'first commit'     //提交更新,并注釋信息“first commit” 
    $ git remote add origin git@github.com:defnngj/hello-world.git     //連接遠程github項目  
    $ git push -u origin master     //將本地項目更新到github項目上去

    五、gitconfig配置文件
         Git有一個工具被稱為git config,它允許你獲得和設置配置變量;這些變量可以控制Git的外觀和操作的各個方面。這些變量可以被存儲在三個不同的位置: 
         1./etc/gitconfig 文件:包含了適用于系統所有用戶和所有庫的值。如果你傳遞參數選項’--system’ 給 git config,它將明確的讀和寫這個文件。 
         2.~/.gitconfig 文件 :具體到你的用戶。你可以通過傳遞--global 選項使Git 讀或寫這個特定的文件。
         3.位于git目錄的config文件 (也就是 .git/config) :無論你當前在用的庫是什么,特定指向該單一的庫。每個級別重寫前一個級別的值。因此,在.git/config中的值覆蓋了在/etc/gitconfig中的同一個值。

        在Windows系統中,Git在$HOME目錄中查找.gitconfig文件(對大多數人來說,位于C:\Documents and Settings\$USER下)。它也會查找/etc/gitconfig,盡管它是相對于Msys 根目錄的。這可能是你在Windows中運行安裝程序時決定安裝Git的任何地方。


        配置相關信息:
        4.1 當你安裝Git后首先要做的事情是設置你的用戶名稱和e-mail地址。這是非常重要的,因為每次Git提交都會使用該信息。它被永遠的嵌入到了你的提交中:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
 
       4.2    你的編輯器(Your Editor)
現在,你的標識已經設置,你可以配置你的缺省文本編輯器,Git在需要你輸入一些消息時會使用該文本編輯器。缺省情況下,Git使用你的系統的缺省編輯器,這通常可能是vi 或者 vim。如果你想使用一個不同的文本編輯器,例如Emacs,你可以做如下操作:
$ git config --global core.editor emacs
 
      4.3 檢查你的設置(Checking Your Settings)
如果你想檢查你的設置,你可以使用 git config --list 命令來列出Git可以在該處找到的所有的設置:
$ git config --list
      你也可以查看Git認為的一個特定的關鍵字目前的值,使用如下命令 git config {key}:
$ git config user.name
 
      4.4 獲取幫助(Getting help)
如果當你在使用Git時需要幫助,有三種方法可以獲得任何git命令的手冊頁(manpage)幫助信息:
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
例如,你可以運行如下命令獲取對config命令的手冊頁幫助:

$ git help config

    六、push到github時,每次都要輸入用戶名和密碼的問題

    在github.com上 建立了一個小項目,可是在每次push  的時候,都要輸入用戶名和密碼,很是麻煩
    原因是使用了https方式 push
    在termail里邊 輸入  git remote -v 
    可以看到形如一下的返回結果
    origin https://github.com/dengVictor/learngit.git (fetch)
    origin https://github.com/dengVictor/learngit.git (push)


    下面把它換成ssh方式的。
    1. git remote rm origin
    2. git remote add origin git@github.com/dengVictor/learngit.git
    3. git push origin 


    七、常用命令

    假如你現在新創建了一個項目,想把它提交到github上面?
 
    假設你創建好了一個項目,并切換到項目的根目錄下面:
    $ git status   //查看當前項目下所有文的狀態,如果第一次,你會發現都紅顏色的,因為它還沒有交給git/github管理。
    $ git add .   //(.)點表示當前目錄下的所有內容,交給git管理,也就是提交到了git的本地倉庫。
    Ps:git的強大之處就是有一個本地倉庫的概念,在沒有網絡的情況下可以先將更新的內容提交到本地倉庫。
    $ git commit –m”discription ”  //對你更新或修改了哪些內容做一個描述。
    $ git remote add origin git@github.com:xiahouzuoxin/zx-libsvm.git
    // 如果你是第一次提交項目,這一句非常重要,這是你本地的當前的項目與遠程的哪個倉庫建立連接。
    Ps: origin可以改為別人的名字,但是在你下一次push(提交)時,也要用你修改之后的名字。
    $ git remote -v  //查看你當前項目遠程連接的是哪個倉庫地址。
    $ git push -u origin master  //將本地的項目提交到遠程倉庫中。
 
    ------------------------------------------------------------
    假如,你回到了家,想把公司提交的項目克隆到本地?
 
    如果你是第一次想把github上面的項目克隆到本地或者要克隆別人的項目到地。
    $ git clone git@github.com:xiahouzuoxin/zx-libsvm.git 
    //在git下面切換到想存放此項目的文件目錄下,運行這條命令就可以將項目克隆下來。
 
    假如本地已經存在了這個項目,而倉庫中又有一新的更新,如何把更的合并到本地的項目中?
    $ git fetch origin    //取得遠程更新,這里可以看做是準備要取了
    $ git merge origin/master  //把更新的內容合并到本地分支/master
 
    ------------------------------------------- 
    項目中刪除了一些文件,如何提交?
 
    假如遠程倉庫中已經存了aaa這個文件,我fetch了下來,并刪除了aaa這個文件,想再push上到遠程倉庫中,并使遠程倉庫中的項目被新的修改覆蓋(也就是遠程倉庫中     的aaa也被刪除)
    $ git status   //可以看到我們刪除的哪些文件
    $ git add .   //刪除之后的文件提交git管理。
    $ git rm   src/com/hzh/hibernate/dao/aaa.java    //移除我們刪除的那個文件,不然git不允許我們往遠程倉庫提交。
    Ps: 如果你想刪除的是某個目錄(java包),這里想移除整個目錄的內容。
    $ git rm  src/com/hzh/hibernate/bbb/ -r   // -r 會把bbb/目錄下的所有內容一次性移動。
 
    ------------------------------------------------------------------------
    遠程創建了一個新倉庫,本地創建了一個新項目,如何使新的項目與倉庫對應起來?
 
    其實,這個也很簡單,只是我當時對那些命令不太理解,所以比較模糊,不知如何對應。
 
  $ git remote add origin git@github.com:xiahouzuoxin/zx-libsvm.git
   //還是這個命令,在你push項目之前加上這一句就OK了。
   git@github.com:xiahouzuoxin/zx-libsvm.git 就是你常見的新倉庫的地址啊。git切換到新項目下,在push之前,加上這一句,我們創建的新倉庫就與新項目建立了連    接。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!