【ZZ】Git連接到本身的Github簡單的開始

好長時間沒上來弄東西了,今天回來先開始弄下Git,以後再繼續寫uboot與kernel的編譯,在版本控制下更加宏觀地觀察每次的變化。

一、在ubuntu中安裝git
$ sudo apt-get install git git-core

二、配置本機的git
$ git config --global user.name "abcd"
$ git config --global user.email abcd@efgh.com

三、生成密鑰
$ ssh-keygen -t rsa -C "abcd@efgh.com" //郵箱同上

四、提交密鑰
vim /home/linx/.ssh/id_rsa.pub //複製裏面的密鑰

到github網頁中登錄本身的帳號,而後再account setting中,找到SSH KEY講複製的密鑰加入(須要再次輸入github的密碼)

五、檢驗是否連接上了github
$ ssh git@github.com
//正常狀況下,回顯以下
PTY allocation request failed on channel 0
Hi plinx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

六、首次推送

$ mkdir tmp //建立推送目錄
$ cd tmp //進入推送目錄 
$ git init //設置該目錄爲推送
$ touch README //生成readme
$ git add README //加入修改列表
$ git commit -m 'first commit' //遞交修改聲明
$ git remote add origin git@github.com:abcd/tmp.git //爲遠程Git改名爲origin
$ git push -u origin master //推送這次修改

而後各類問題從這裏開始了,如下談一下解決的方法:


問題一:
ERROR: Repository not found.
這個問題是由於在你推送的github帳戶中,並無這個Repository。

  解決方法:

  1) 檢查本身的github中的Repository,檢查本身建立的目錄,必需要二者一致

  2) 先git clone下github中的Repository,而後再進行更改,這樣就必定一致了

問題二:
Agent admitted failure to sign using the key. 
Permission denied (publickey)
這個問題是由於你的ssh key並無加入到你想git的github帳戶的ssh key中,因此沒有訪問權限。

  解決方法:

  1)從新拷貝一份當前的~/.ssh/id_rsa.pub中的ssh key到github中添加;

  2)先刪除~/.ssh/in_rsa*文件,而後從新ssh-keygen一份sshkey來生成密鑰,而後複製到github,接着ssh連接github來檢驗是否成功聯通。

問題三:
//出現以下提示
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ...


  這個問題是由於,github中已經有了這個代碼,不容許你覆蓋它。

  解決方法:

  1)強制推送,通常不推薦!
    
$ git push -f


  2)
$ git pull


  而後將出現其餘提示,具體意思是說branch與merge未指定,git沒法選擇要推送的分支。

  能夠經過修改 .git/config文件中的下列內容
[branch "master"]
remote = origin
merge = refs/heads/master


  也能夠直接命令行修改
$ git config branch.master.remote origin
$ git config branch.master.merge ref/heads/master


  目前瞭解到的也就這三個問題了。

  以後就能夠成功得推送了。


一、先查看當前開發分支
python

$ cat .git/HEAD
ref: refs/heads/master

這裏的master是默認分支。

二、查看當前狀態
$ git status
# On branch master
nothing to commit (working directory clean)


目前是無推送狀態,即便你推送了一個未作任何改變的文件,當前狀態仍未無推送狀態。

進入README添加一句以後

$ git add README
//以後有兩種方法填寫推送信息
//比較簡單的一種,直接寫入推送信息,-m 就是 message 的意思
$ git commit -m 'message you want to write.'
//比較麻煩的一種
$ git commit
//進入GNU nano編輯器,底行有操做提示

將提示
[master bc30d5d] updated the status.
1 file changed, 1 insertion(+)

而後再看一下status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

三、git中有日誌能夠查看推送記錄
$ git log


四、檢查不一樣
$ git diff
//這項操做時要在添加推送以前執行的,不然就看不出哪裏不一樣了


  五、建立分支

git branch test0.1 //建立一個test0.1分支
git checkout test0.1 //進入這個分支中來
git branch //查看當前分支狀況,所在分支前面有'*'號
git add -A //將本次修改的全部內容都加入修改列表
git commit -m "commit all" //提交說明
git push -u origin test0.1 //將這次修改提交到分支test0.1中去



  六、只對項目精簡了而沒有增長內容
$ git commit -a 
$ git push -u origin code_ver0.1
//分支和帳戶請勿對號入座
相關文章
相關標籤/搜索