Git個人筆記總結(一)

git 基本知識

git是一個分佈式版本控制系統,可以進行代碼的管理,合併別人的代碼等,最開始接觸git是在GitHub網站上,號稱全球最大同性交友網站,活躍着各種各樣的大佬,當然也有像我這樣的小白存在。

如果你看到一個項目覺得挺好的,你可以把這個項目fork下來,研究的過程中你的水平也越來越高,終於有一天你發現其實大佬的代碼可以進行優化,於是你把fork的項目clone到本地,修改之後push到自己的遠程倉庫,接着你特別驕傲的pull request 給大佬,申請代碼合併,大佬看到後覺得你寫的代碼還不錯,就會同意merge,也就是把你修改的代碼合併到已有的項目中去,於是你就出名了,也成了別人眼中的大佬。。。。

預備知識:

首先你得有一個github賬號,然後你得下載git,然後傻瓜式安裝即可,這裏不再贅述。
1.首先主要介紹ssh的創建以及git的配置
首先設置username,email:
右鍵 git bash 打開,輸入:

Administrator@HJS-20170911MKR MINGW64 /f/Git/kaggle (dev)
$ git config --global user.name "你的github用戶名"

Administrator@HJS-20170911MKR MINGW64 /f/Git/kaggle (dev)
$ git config --global user.email "你的email"

Administrator@HJS-20170911MKR MINGW64 /f/Git/kaggle (dev)
$

2.接下來通過終端命令創建ssh key
ssh-keygen -t rsa -C “你的email”
接下來直接三個回車就行,好像是需要設置什麼密碼口令,其實不用設,別人也不會無聊修改你的。。。
然後在.ssh目錄下(我的是在C/users/Adimin,,HJS/.ssh目錄下)生成 id_rsa.pub 和id_rsa兩個文件,我們需要打開id_rsa_pub文件(用記事本或者編輯器都可以)複製裏邊的key,下一步要用到

3.上傳ssh key 到github服務器上面
首先你要登錄github賬號,然後點擊settings–>>添加ssh key–>>new ssh key
然後把我們剛纔複製的key放到這裏的key ,title隨便寫就行,主要是爲了區分

4.連接驗證
ssh -T [email protected]
如果回車之後返回的信息是Hi,,you are successfully,,,,
說明你設置對了,連接成功,接下來就可以進行接下來的操作了!

好了 我要介紹的正文開始啦~~~~~~~~

這篇文章主要是總結一下兩方面的知識點:

1.把遠程倉庫的項目fork到本地倉庫,然後在本地倉庫修改之後push到遠程倉庫

首先你去你的github上新建一個倉庫 (當然你也可以fork別人的項目),我就用我之前的study了
首先你進入到這個倉庫,點擊右邊的那個clone or download ,然後點擊clone with ssh 那個對應的地址,複製下來
接下來你就在你想要存這個倉庫(項目)的文件夾下面(我是放在F盤的Git下了),在這個文件夾下右鍵 git bash 然後你就可以在終端秀各種操作了

pwd 可以查看當前所在的文件夾
然後
git clone [email protected]:xuanbabybaby/study.git (xuanbabybaby是我的賬號 你複製你自己的就行)
複製完成100%之後 你打開你剛纔存這個項目的文件夾,發現裏面多了一個文件 也就是剛纔我們clone下來的項目(study)
然後cd study 進入到study文件夾下,,
ls 可以用於查看當前項目包含哪些文件。
git status可以查看當前的狀態
接下來我們可以在本地倉庫study下面修改幾個文件,也就是我們可以新建py文件 或者.txt文件都可以(test6.py
接下來在終端輸入 git add test6.py
然後git commit -m “這裏寫自己的描述 可以說 add a py file”
最後就可以提交到你剛纔的遠程倉庫了 git push -u origin master
如果沒什麼錯的話 ,你會發現在github遠程倉庫study下面會增加一個你剛纔添加的test6.py文件!
是不是很簡單呀~~~~

第二個就是 如果我們有一個遠程倉庫study 然後有一個本地倉庫study2(注意 study2不是簡單地clone study的 而是不同於study的新的存在 那麼我們應該如何在本地倉庫study2修改文件 同步到遠程倉庫study呢)

和前面步驟大致一樣,我就直接寫了:
在f/Git 下面新建本地倉庫study2 在裏面新建一個py文件比如test7.py 然後我們打開終端 進入該本地倉庫
cd /f/Git/study2,接下來你輸入git add test7.py是會報錯的!!你需要初始化本地倉庫!!git init !!! 然後你會發現本地倉庫現在多了一個.git文件夾 接下來你就可以進行git add test7.pygit commit -m “add a test7.py”
由於我們是把一個新的本地倉庫和不同於它的遠程倉庫建立同步 所以我們需要進行連接操作:
git remote add origin [email protected]:xuanbabybaby/study.git 後面這個是你要更新到的遠程倉庫的地址 你想把本地倉庫修改的東西同步到哪個地方你就修改成哪個遠程倉庫的地址!!
接下來輸入 git push -u origin matser
然後又報錯了 :

$ git push -u origin master
To github.com:xuanbabybaby/study.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to '[email protected]:xuanbabybaby/study.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

之所以會出現這個錯誤,是因爲我們自己建立的本地倉庫是沒有readme文件的 我們需要把兩者同步:
git pull –rebase origin master
接下來你會發現自己的倉庫和遠程的倉庫同步了,,只不過本地倉庫多了一個test7.py也就是我們最開始添加的那個文件,這就和第一個問題完全一樣了
最後一步就是把本地倉庫修改的文件push到遠程倉庫:
git push -u origin master
然後你就會發現你的遠程倉庫下面多了一個test7.py文件

如何把大佬的文件fork下來,然後我們在本地倉庫修改,然後提交到遠程倉庫 最後pull request 給大佬呢?

比如我把之前fork大佬的項目 kaggel clone到本地倉庫 (直接在f盤下面 一會我還要刪掉的)
然後進入到該文件夾下 cd kaggle
然後在本地倉庫增加一個文件:test1.py 好像不能是文件夾~
git add test1.py
git commit -m "add a test2 .py"
此步可以先不弄【最後直接git push -u origin dev 這裏我這樣操作也成功了呢,,,,】
其實接下來的操作 按照我個人的理解就是:
因爲你是fork別人的項目 所以要和大佬的保持一致?
所以需要添加大佬的遠程倉庫
首先看一下 git remote 看一下遠程倉庫的名字 origin 其實就是我們fork的項目 我們自己的遠程倉庫名字
接下來 我們想和大佬的遠程倉庫連接:
git remote add origin_online https://github.com/apachecn/kaggle.git (這個是fork大佬的項目地址)中間那個origin_online 是大佬的遠程倉庫名稱 不過好像一般都用origin是你自己fork的項目 遠程倉庫名稱
連接成功後:
git pull origin_online master 就可以保持同步了大佬的項目 一更新本地的也更新,是這樣嗎?
最後就可以push 操作了 git push origin dev 是上傳到自己的repo倉庫 因爲是origin ~

刪掉遠程倉庫的文件
參考
參考
參考
參考
參考
參考
參考
參考
git參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章