NASA 找到露西號探測器太陽能電池板故障原因
阿新 • • 發佈:2021-11-09
初始化projects
-
github新建repo
- 新建的repo不要生成任何內容(不要勾選readme,.gitignore)
- 這樣push和pull的時候就不會有任何衝突項存在
-
本地終端生成ssh金鑰
~/.ssh $ ssh-keygen -t rsa -b 4096 -C 'your_git_email' # Example: ssh-keygen -t rsa b 4096 -C '[email protected]'
一路回車,生成一組金鑰對(私鑰id_rsa + 公鑰id_rsa.pub)
建議不要重新命名,因為github預設指定id_rsa.pub
如果重新命名,可以考慮在~/.ssh/config中指定金鑰路徑 -
公鑰上傳到github
github -> setting -> SSH&GPG keys -> New SSH (gitee同理)標題任取,可以取方便記憶的,每個主機對應一個
-
測試ssh連線git
$ ssh -T [email protected] Hi Tsingwaa! You've successfully authenticated, but GitHub does not provide shell access.
如果終端返回如上,則ssh配置成功。此後就以ssh協議進行git pull/push.
(gitee同理ssh -T [email protected]) -
本地倉庫初始化,與遠端倉庫建立免密連線
path_to_your_repo $ git init # 初始化倉庫 生成.git資料夾 path_to_your_repo $ git commit -m 'init repo' path_to_your_repo $ git remote add origin path_to_git_remote_repo (origin為遠端庫,可替換為記憶性名字,如github,gitee) path_to_your_repo $ git pull origin main
Example:
~/Projects/test $ git init ~/Projects/test $ git commit -m 'init repo' ~/Projects/test $ git remote add github [email protected]:Tsingwaa/test.git ~/Projects/test $ git pull github master (舊版github預設是master分支,如果新版則是main,對應即可)
注:
- origin可以替換為各種名字,如github,gitee
- 可以新增多個遠端倉庫,同時pull/push -
提交本地檔案
path_to_your_repo $ vim .gitignore # 設定忽略的檔案 path_to_your_repo $ git add . # 新增所有未忽略的檔案進入倉庫 path_to_your_repo $ git commit -m 'your_commit_message' # 為add的檔案新增提交記錄 path_to_your_repo $ git push origin master # 將本地倉庫分支推遠端倉庫分支
-
Well done!
常用操作
- 養成一個好習慣,開啟一個庫,第一件事是git pull,確保和遠端倉庫同步,這樣尤其是在協作時很方便
- 每次修改檔案,都需要git add 和git commit,然後git push
git pull origin your_branch # 從遠端倉庫拉取對應分支到本地分支 git log # 檢視commit記錄 git status # 檢視當前git倉庫的修改狀態 git add path/to/file # 將修改後的檔案新增入當前節點 git commit -m 'message for modified place' # 為當前加入倉庫的檔案修改新增提交記錄 git push origin your_branch # 將本地倉庫分支推往遠端倉庫分支 git reset --soft HEAD~2 # 撤銷最近兩次commit,--soft表示程式碼不變 git remove --cached path/to/file 移除部分檔案
使用者和郵箱配置
這個配置,主要是用於對倉庫提交時,顯示提交使用者的資訊。
如果提交使用者郵箱時託管平臺賬號,則會自動對應為倉庫主人。
$ git config --global user.name <repo_user_name> # 設定repo使用者賬號(不加global,則只設置當前repo的使用者名稱)
$ git config --global user.email <repo_user_email> # 設定repo使用者郵箱
設定代理和取消代理
法一:終端命令
git設定代理:(代理協議也可採用socks5)
$ git config --global http.proxy http://proxy_ip:proxy_port
$ git config --global https.proxy http://proxy_ip:proxy_port
git只針對github設定代理
$ git config --global http.https://github.com.proxy http://proxy_ip:proxy_port
$ git config --global https.https://github.com.proxy http://proxy_ip:proxy_port
git取消代理:
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy
法二:修改配置檔案
git代理資訊以及git使用者資訊都儲存在~/.gitconfig
中,除了上述命令,還可直接編輯該檔案。
[http]
proxy = http://proxy_ip:proxy_port
[https]
proxy = http://proxy_ip:proxy_port
# git若只針對github設定代理
[http "https://github.com"]
proxy = http://proxy_ip:proxy_port
[https "https://github.com"]
proxy = http://proxy_ip:proxy_port
# 其他配置
[user]
name = Tsingwaa
email = [email protected]
[init]
defaultBranch = main
[color]
ui = auto
注: 上述代理,除了用http協議和https協議,還可以用socks5協議。
一些問題
1. git pull/push 報錯
- git pull 時報錯
fatal: refusing to merge unrelated histories
- 解決步驟:
$ git pull origin main --allow-unrelated-histories $ git diff $ vimdiff /path/to/file_to_merge
- 解決步驟:
2. 如何將master分支改為main分支?
path_to_repo $ git branch -m master main
path_to_repo $ git push -u origin main
參考:
如何為 Git 設定代理?
git commit之後,想撤銷commit
DevOps Guidebook``
本文來自部落格園,作者:呈華,轉載請註明原文連結:https://www.cnblogs.com/Tsingwaa/p/14917585.html