電腦重做系統后,密鑰重新配置
1、github上先將密鑰刪除
git config --global user.name "github的名字"
git config --global user.email“your@email.com"
注:yourname是你要設置的名字,your@email是你要設置的郵箱。
2、刪除.ssh文件夾(直接搜索該文件夾)下的known_hosts(手動刪除即可,不需要git)
C:\Users\BlackBoy\.ssh
3、git輸入命令
$ ssh-keygen -t rsa -C "your@email.com"(請填你設置的郵箱地址)
接着出現:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):
請直接按下回車
然后系統會自動在.ssh文件夾下生成兩個文件,id_rsa和id_rsa.pub,用記事本打開id_rsa.pub
將全部的內容復制
4、打開https://github.com/,登陸你的賬戶,進入設置
進入ssh設置
在key中將剛剛復制的粘貼進去
點擊add ssh key,
ok!
5、在git中輸入命令:
github用命令: ssh -T git@github.com
- 對於 oschina 的 “碼雲” ,執行
ssh -T git@git.oschina.net
- 對於 coding 的 “碼市” ,執行
ssh -T git@git.coding.net
輸入命令:yes
回車
2:
創建遠程倉庫並與本地關聯
-
創建遠程倉庫
首先是在右上角點擊進入創建界面:接着輸入遠程倉庫名:
點擊
Create repository
就創建好了。其他選項可以暫時不管。 -
將遠程倉庫和本地倉庫關聯起來
先到Github上復制遠程倉庫的SSH地址:
有兩種方式可以關聯,一種是SSH,一種是HTTPS。由於HTTPS比較慢,所以推薦使用SSH。
注意SSH的地址格式是這樣開頭的:git@github.com
運行
git remote add origin 你復制的地址
:如果你在創建 repository 的時候,加入了 README.md 或者 LICENSE ,那么 github 會拒絕你的 push 。你需要先執行
git pull origin master
。執行
git push -u origin master
將本地倉庫上傳至Github的倉庫並進行關聯:
關聯已經完成!
以后想在commit后同步到Github上,只要直接執行 git push
就行啦:
可以在Github上看到修改:
github上下載項目,直接:git clone 復制的地址
使用常用命令
所有命令前都要加 git
,如表中的init
是指 git init
。
點擊命令可直接跳轉至本文第一次使用的地方。
以下命令都在命令行里執行。
1.個人本地使用
行為 | 命令 | 備注 |
---|---|---|
初始化 | init | 在本地的當前目錄里初始化git倉庫 |
clone 地址 | 從網絡上某個地址拷貝倉庫(repository)到本地 | |
查看當前狀態 | status | 查看當前倉庫的狀態。碰到問題不知道怎么辦的時候,可以通過看它給出的提示來解決問題 |
查看不同 | diff | 查看當前狀態和最新的commit之間不同的地方 |
diff 版本號1 版本號2 | 查看兩個指定的版本之間不同的地方。這里的版本號指的是commit的hash值 | |
添加文件 | add -A | 這算是相當通用的了。在commit之前要先add |
撤回stage的東西 | checkout -- . | 這里用小數點表示撤回所有修改,在-- 的前后都有空格 |
提交 | commit -m "提交信息" | 提交信息最好能體現更改了什么 |
刪除未tracked | clean -xf | 刪除當前目錄下所有沒有track過的文件。不管它是否是.gitignore文件里面指定的文件夾和文件 |
查看提交記錄 | log | 查看當前版本及之前的commit記錄 |
reflog | HEAD的變更記錄 | |
版本回退 | reset --hard 版本號 | 回退到指定版本號的版本,該版本之后的修改都被刪除。同時也是通過這個命令回到最新版本。需要reflog配合 |
2.個人使用遠程倉庫
行為 | 命令 | 備注 |
---|---|---|
設置用戶名 | config --global user.name "你的用戶名" | |
設置郵箱 | config --global user.email "你的郵箱" | |
生成ssh key | ssh-keygen -t rsa -C "你的郵箱" | 這條命令前面不用加git |
添加遠程倉庫 | remote add origin 你復制的地址 | 設置origin |
上傳並指定默認 | push -u origin master | 指定origin為默認主機,以后push默認上傳到origin上 |
提交到遠程倉庫 | push | 將當前分支增加的commit提交到遠程倉庫 |
從遠程倉庫同步 | pull | 在本地版本低於遠程倉庫版本的時候,獲取遠程倉庫的commit |
可以用一張圖直觀地看出以上主要的命令對倉庫的影響。
圖片引用自:Git introduction for CVS/SVN/TFS users
圖片引用自:工作區和暫存區 - 廖雪峰的官方網站 (做了點修改)
對照查看兩張圖:
- workspace 即工作區,邏輯上是本地計算機,還沒添加到repository的狀態;
- staging 即版本庫中的stage,是暫存區。修改已經添加進repository,但還沒有作為commit提交,類似於緩存;
- Local repository 即版本庫中master那個地方。到這一步才算是成功生成一個新版本;
- Remote repository 則是遠程倉庫。用來將本地倉庫上傳到網絡,可以用於備份、共享、合作。本文將使用Github作為遠程倉庫的例子。