日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git 爬坑小结

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git 爬坑小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

git 作為一個當下最流行的版本控制工具,不會git都不好意思(吹)聊(牛)天,但是作為一個剛接觸不久的小白,在使用過程中,還是遇到一些頭疼的地方,所以開個帖,記錄下在學習和使用git的過程中的筆記和一些小技巧。(大佬勿噴~)

常用命令

我們日常使用最多的命令應該就是這些了,也基本上滿足大部分工作流

  • git init 創建版本庫,會在當前根目錄生成 .git文件夾,當前項目的git相關配置都在這個文件夾下

  • git clone 你是我?對,你就是我

  • git add [<options>] 將有變更的文件添加到暫存區,可以指定文件或者全部添加 git add .

  • git status 顧名思義啦,查看當前項目狀態,是不是有修改,暫存區是不是有待提交文件等

  • git commit -m "message" 將暫存區的文件提交到當前分支中,message 不可以為空,一個好的message可是非常重要的,畢竟哪個開發狗手里沒個板磚

  • git remote add <name> <url> 當我們本地的代碼需要上傳到服務器時,就需要新增個遠端服務的地址,name指定一個名稱,該名稱在后續的操作非常有用的,url 遠程倉庫的地址

  • git push <remote-name> <branch> 這個命令可以理解為,將本地的修改推送到遠端倉庫里,remote-name 就是我們在 git remote add 設定的名字,branch 指定推送上去的分支

  • git pull <remote-name> <branch> 功能與上一個相反,將遠端的代碼更新到本地,<remote-name> <branch>就不多解釋了哈

  • git checkout -b <branch> [<remote-name>/<branch>] 創建分支,有兩種情景,一 在當前分支的基礎上創建的新分支,那么使用這個 git checkout -b <branch> 或者 git branch <branch> ,在hot fix 的時候就非常適用;二 想從遠端拉取個新的功能分支,那么來發這個 git checkout -b <branch> <remote-name>/<branch> 指定遠端和具體分支,適合多分支同時開發的場景

  • git checkout <branch> 切換分支

  • git branch [--list] 查看分支列表

  • git branch -d <branch> 刪除分支,say goodbye

  • git fetch <remote-name> 將本地庫所關聯的遠程庫的commit id更新至最新,如果大家使用 git pull 來更新代碼,那基本上不會使用該命令,不過在當我們不想更新遠程倉庫,卻又想查看遠程倉庫的最新提交歷史的時候,這就派上用場啦

更新本地倉庫

通常有兩種方式

  • git pull <remote-name> <branch> 從遠程獲取最新版本并merge到本地,相當于是 git fetch 和 git merge 一并執行了
  • 先使用 git fetch <remote-name> 更新狀態; git rebase <remote-name>/<branch> 或者 git merge <remote-name>/<branch> 更新代碼,個人推薦 rebase
  • 解決沖突

    對小白來說,最可怕的莫過于,代碼擼完了,一提交,臥槽!有沖突! 好吧,沖突其實并(非)不(常)可怕。 沖突建議在本地進行解決,不建議在網頁上操作,因為會默認雙向合并,親自測出來的

  • 使用 git pull 方式更新的代碼,那么分別將沖突的文件逐一修改,完成后,git add <conflict file> git commit -m "merge conflict" 這種方式會產生一次額外的 commit
  • 使用先 fetch 后 rebase 的方式更新代碼,根據提示,解決后,git add <conflict file>,注意此時不需要 git commit ! 只需要 git rebase --continue 即可,這中方式不會生成新的 commit記錄,使得我們的提交記錄干凈一些,且合并到一半,心情不好,我們還可以 git rebase --abort 取消本次合并,下(吃)班(飯)再說
  • 撤銷修改

    誰沒寫過bug的時候,但被眼光犀利的我們發現了,我們用如下操作將其roll-back。有以下三種場景

    修改還沒有加入暫存區

    還沒有執行 git add

    git checkout -- <file> 該文件的修改,將被啪嘰打回最初狀態,不過若是某一處地方需要還原,這個操作就不適合了,手動修改即可

    修改還在暫存區

    已經git add , 但未 git commit提交

    git reset HEAD <file>... 將文件從暫存區撤銷掉

    修改已經提交到分支上

    頭腦混亂中,已經把bug commit 上去了(寫bug我們從來不含糊),如果是這個bug涉及的代碼量非常多,需要完全重新寫過那種,那可以通過回滾的方式 git reset --hard HEAD~ 回退到上一個版本 ,或者回滾到指定的版本號

    文件名大小寫

    某個已經提交的文件,想要修改文件名稱的大小寫,啪嘰,改完,發現git沒檢查出有變更,心理mmp,莫慌,git 默認對于文件名大小寫是不敏感的,所以git認為當前代碼無任何改動,那么如何才能讓 git 識別文件名大小寫變化呢 有兩種方式

  • 修改配置文件 git config core.ignorecase false 設置為大小寫敏感,但據說設置后會有奇奇怪怪的小問題,我還沒試過,大家可以嘗試看看哈~
  • git mv <old-file> <new-file> 取巧的方式,但肥腸好用
  • .gitignore

    顧名思義,指定文件或目錄,git將其視為空氣。

    有個情景,若某個已經版本管理中的文件,想不要納入版本管理中,可如下操作

  • .gitignore中添加規則

  • git rm [-f] <filename> 將文件從版本控制中刪除,同時本地文件也會被物理刪除

    git rm --cached <filename> 僅從版本庫中刪除,本地文件仍然保留

  • git commit -m "remove file from git"

  • 提交空文件夾

    git會無視我們的空文件夾,但當我們又不得不提交的時候,我們可以創建個對項目無影響的文件,如 .gitkeep 名字大家隨意即可

    設置別名

    如果你使用的是可視化工具,那當我沒說~

    早上 git xxx,下午git xxx ,時間久了,大伙一定發現,常用的那些命令每天都要敲個幾百遍,肌肉都有記憶了,敲快一點,還不小心敲錯了。放心,我們可以設置別名,讓大家少敲幾個單詞啦

    git config --global alias.<alias-name> <name> 告訴git,以后 alias-name 就是 name 了 以下是我設置的別名列表

    git config --global alias.co checkout git config --global alias.cm commit git config --global alias.br branch git config --global alias.fu 'fetch upstream' git config --global alias.po 'push origin' git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 復制代碼

    大家根據自己的習慣折騰就好啦,--global指的是全局設置,若想查看配置信息, cd ~ ; cat .gitconfig 即可查看

    可視化工具

    這方面的工具,市面上一大把了,比如

    [Git GUI] gitk 即可打開,一個非常淳樸的GUI

    sourcetree

    tortoisegit

    SmartGit

    我用過sourcetree,感覺還不錯,非常直觀,個人不推薦小白入門使用圖形化工具,萬一不小心點錯了,真不知道該如何處理~ (來自一個制帳加手殘的前端狗的溫馨提醒)

    -----------------------我是分割線--------------------------

    我還會持續更新的~歡迎大家持續關注

    總結

    以上是生活随笔為你收集整理的git 爬坑小结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。