1. 程式人生 > 資訊 >NASA 找到露西號探測器太陽能電池板故障原因

NASA 找到露西號探測器太陽能電池板故障原因

初始化projects

  1. github新建repo

    • 新建的repo不要生成任何內容(不要勾選readme,.gitignore)
    • 這樣push和pull的時候就不會有任何衝突項存在
  2. 本地終端生成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中指定金鑰路徑

  3. 公鑰上傳到github
    github -> setting -> SSH&GPG keys -> New SSH (gitee同理)

    標題任取,可以取方便記憶的,每個主機對應一個

  4. 測試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])

  5. 本地倉庫初始化,與遠端倉庫建立免密連線

    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

  6. 提交本地檔案

    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  # 將本地倉庫分支推遠端倉庫分支
    
  7. 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