Git隨筆一記

Git

Git的配置

1.初始化配置文件

  • git config --global user.name "用戶名"
    git config --global user.email "郵箱"

2. 初始化祕鑰

  • 檢查是否有祕鑰
    cd ~/.ssh檢查文件夾是否爲空,祕鑰文件名爲id_rsa.pub
  • 生成祕鑰
    ssh-keygen -t rsa -C "git註冊郵箱"

3. 配置GitHub倉庫(gitee同理)

  • GitHub綁定祕鑰:
    Settings ==> SSH and GPG keys ==> 填寫本機生成的Key
  • 驗證祕鑰是否生效:
    ssh -T git@github.com 若是使用gitee則替換github

4. Git鏈接倉庫

  • 在雲端中建立一個倉庫
  • 建立好倉庫後在本地目錄下建立一個文件夾 在文件夾內右鍵git bash here
  • 輸入git init生成.git文件
  • 輸入git remote add (起一個分支標籤名) git@github.com:yourName/repositoryname.git進行倉庫鏈接
    使用gitee:git remote add (起一個分支標籤名) git@gitee:倉庫頁面地址

Git經常使用操做

1. 上傳-下載

  • 在使用github時,可能會由於沒有README.md文件而報錯,此時可能須要添加該文件
    echo "# XXXXX項目名" >> README.md
  • git init #初始化本地文件夾,生成.git文件夾
  • git remote add (分支標籤名) git@git #連接雲端倉庫
  • git add . #將文件暫存至緩存區
  • git commit -m "註釋" #提交修改
  • git remote rm XXX #刪除一個標籤
  • git remote -v #查看已經存在標籤
  • git pull XXX master #下載
  • git push XXX master #上傳

2. Git常見錯誤整理

  • error: src refspec master does not match any. error: failed to push some refs to'git@github.com:XXXXXXX/XXXXXX.git'
    目錄下沒有文件,不能提交。解決方法爲執行:
    echo "# XXXXX項目名" >> README.md
    git add README.md
    git commit -m "註釋"

  • Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
    緩存區沒有文件。解決方法爲執行:
    git add .

  • Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
    簡單粗暴改鏈接方式:
    git remote set-url origin https://github.com/XXXXX/XXXX.git

  • error: Pulling is not possible because you have unmerged files.
    下載合併分支衝突與上傳合併分支衝突
    下載衝突解決辦法:git add -u ---> git commint -m ""
    上傳衝突解決辦法:git push -f XXX master | git pull XXXX master ---> git push XXX master(二選一)

  • 以雲端內容強制覆蓋本地
    git fetch --all //只是下載代碼到本地,不進行合併操做
    git reset --hard origin/master //把HEAD指向最新下載的版本
    git pull

回滾

git rest的三種參數

選項 HEAD 索引 工做目錄
--soft
--mixed
--hard

代碼回滾的三種場景

1. 還未進行push操做

  • 本地倉庫未提交的操做被稱爲撤銷
  1. 文件修改後沒有進行add操做
    git checkout filename
    git checkout .
  2. 多個文件已經add,可是隻想提交某一部分
    git add * git status
    取消暫存
    `git reset HEAD
  3. 文件已經add,可是想撤銷修改(index內回滾)
    取消暫存
    git reset HEAD filename ==撤銷修改== git checkout filename
  4. 文件已經commit提交了,可是想修改後不產生新的commit
    修改最後一次提交
    git add xxxx.xx git commit -amend -m ""
  5. 本地屢次commit,想撤銷某一次
    `git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]

2. 已經進行了push操做

  • 這種已經進行了push操做的撤銷咱們成爲回滾。切記在回滾前備份
  1. 若是每次都打tag,那麼
    git checkout tag git checkout <branch_name>
  2. 撤銷指定文件到指定版本
    查看指定文件的歷史版本
    git log <filename> 回滾到指定commitID git checkout
  3. 刪除最後一次遠程提交
    3.1 revert
    git revert HEAD git push origin master
    3.2 reset
    git reset --hard HEAD^ git push origin master -f
    revert 是放棄指定提交的修改,可是會生成一次新的提交,須要填寫提交註釋,之前的歷史記錄都在
    reset 是指將HEAD指針指到指定提交,歷史記錄中不會出現放棄的提交記錄
  4. 回滾某次提交
    git log 找到須要回滾的id git revert commitID

3. 刪除某次提交

git log --oneline -n5git rebase -i "commit id"^
=須要注意最後的^號,意思是commit id的前一次提交==
在編輯框中刪除相關commit,如pick 5b3ba7a test2,而後保存退出(若是遇到衝突須要先解決衝突)!
`git push origin master -fgit

文章內容輸出來源:拉勾教育大數據高薪訓練營github

相關文章
相關標籤/搜索