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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

关于Git你必须知道的

發布時間:2025/3/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Git你必须知道的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

      • 添加修改
      • 儲藏
      • 撤銷修改
      • 更新與推送
      • 查看信息
      • 分支
      • 標簽
      • 合并與重置
      • Github
        • clone 方式
        • 生成 SSH 公鑰

創建一個新的本地倉庫:

$ git init

添加修改

添加修改到暫存區:

# 把指定文件添加到暫存區 $ git add xxx# 把當前所有修改添加到暫存區 $ git add .# 把所有修改添加到暫存區 $ git add -A

提交的時候warning: LF will be replaced by CRLF in 解決辦法

原因是存在符號轉義問題

windows中的換行符為 CRLF, 而在linux下的換行符為LF,所以在執行add . 時出現提示,解決辦法:

git config --global core.autocrlf false

提交修改到本地倉庫:

# 提交本地的所有修改 $ git commit -a# 提交之前已標記的變化 $ git commit# 附加消息提交 $ git commit -m 'commit message'

儲藏

有時,我們需要在同一個項目的不同分支上工作。當需要切換分支時,偏偏本地的工作還沒有完成,此時,提交修改顯得不嚴謹,但是不提交代碼又無法切換分支。這時,你可以使用 git stash 將本地的修改內容作為草稿儲藏起來。

推薦:太贊了,SpringBoot+Vue前后端分離完整入門教程!

官方稱之為儲藏,但我個人更喜歡稱之為存草稿。

# 1. 將修改作為當前分支的草稿保存 $ git stash# 2. 查看草稿列表 $ git stash list stash@{0}: WIP on master: 6fae349 :memo: Writing docs.# 3.1 刪除草稿 $ git stash drop stash@{0}# 3.2 讀取草稿 $ git stash apply stash@{0}

撤銷修改

撤銷本地修改:

# 移除緩存區的所有文件(i.e. 撤銷上次git add) $ git reset HEAD# 將HEAD重置到上一次提交的版本,并將之后的修改標記為未添加到緩存區的修改 $ git reset <commit># 將HEAD重置到上一次提交的版本,并保留未提交的本地修改 $ git reset --keep <commit># 放棄工作目錄下的所有修改 $ git reset --hard HEAD# 將HEAD重置到指定的版本,并拋棄該版本之后的所有修改 $ git reset --hard <commit-hash># 用遠端分支強制覆蓋本地分支 $ git reset --hard <remote/branch> e.g., upstream/master, origin/my-feature# 放棄某個文件的所有本地修改 $ git checkout HEAD <file>

刪除添加.gitignore文件前錯誤提交的文件:

$ git rm -r --cached . $ git add . $ git commit -m "remove xyz file"

撤銷遠程修改(創建一個新的提交,并回滾到指定版本):

$ git revert <commit-hash>

徹底刪除指定版本:

# 執行下面命令后,commit-hash 提交后的記錄都會被徹底刪除,使用需謹慎 $ git reset --hard <commit-hash> $ git push -f

更新與推送

更新:

# 下載遠程端版本,但不合并到HEAD中 $ git fetch <remote># 將遠程端版本合并到本地版本中 $ git pull origin master# 以rebase方式將遠端分支與本地合并 $ git pull --rebase <remote> <branch>

推送:

# 將本地版本推送到遠程端 $ git push remote <remote> <branch># 刪除遠程端分支 $ git push <remote> :<branch> (since Git v1.5.0) $ git push <remote> --delete <branch> (since Git v1.7.0)# 發布標簽 $ git push --tags

查看信息

顯示工作路徑下已修改的文件:

$ git status

顯示與上次提交版本文件的不同:

$ git diff

顯示提交歷史:

# 從最新提交開始,顯示所有的提交記錄(顯示hash, 作者信息,提交的標題和時間) $ git log# 顯示某個用戶的所有提交 $ git log --author="username"# 顯示某個文件的所有修改 $ git log -p <file>

顯示搜索內容:

# 從當前目錄的所有文件中查找文本內容 $ git grep "Hello"# 在某一版本中搜索文本 $ git grep "Hello" v2.5

分支

增刪查分支:

# 列出所有的分支 $ git branch# 列出所有的遠端分支 $ git branch -r# 基于當前分支創建新分支 $ git branch <new-branch># 基于遠程分支創建新的可追溯的分支 $ git branch --track <new-branch> <remote-branch># 刪除本地分支 $ git branch -d <branch># 強制刪除本地分支,將會丟失未合并的修改 $ git branch -D <branch>

切換分支:

# 切換分支 $ git checkout <branch># 創建并切換到新分支 $ git checkout -b <branch>

標簽

# 給當前版本打標簽 $ git tag <tag-name># 給當前版本打標簽并附加消息 $ git tag -a <tag-name>

合并與重置

merge 與 rebase 雖然是 git 常用功能,但是強烈建議不要使用 git 命令來完成這項工作。

因為如果出現代碼沖突,在沒有代碼比對工具的情況下,實在太艱難了。

你可以考慮使用各種 Git GUI 工具。

合并:

# 將分支合并到當前HEAD中 $ git merge <branch>

重置:

# 將當前HEAD版本重置到分支中,請勿重置已發布的提交 $ git rebase <branch>

Github

Github 作為最著名的代碼開源協作社區,在程序員圈想必無人不知,無人不曉。

這里不贅述 Github 的用法,確實有不會用的新手同學,可以參考官方教程:https://guides.github.com/

clone 方式

Git 支持三種協議:HTTPS / SSH / GIT

而 Github 上支持 HTTPS 和 SSH。

HTTPS 這種方式要求你每次 push 時都要輸入用戶名、密碼,有些繁瑣。

而 SSH 要求你本地生成證書,然后在你的 Github 賬戶中注冊。第一次配置麻煩是麻煩了點,但是以后就免去了每次 push 需要輸入用戶名、密碼的繁瑣。

以下介紹以下,如何生成證書,以及在 Github 中注冊。

生成 SSH 公鑰

如前所述,許多 Git 服務器都使用 SSH 公鑰進行認證。為了向 Git 服務器提供 SSH 公鑰,如果某系統用戶尚未擁有密鑰,必須事先為其生成一份。這個過程在所有操作系統上都是相似的。首先,你需要確認自己是否已經擁有密鑰。默認情況下,用戶的 SSH 密鑰存儲在其 \~/.ssh 目錄下。進入該目錄并列出其中內容,你便可以快速確認自己是否已擁有密鑰:

$ cd ~/.ssh $ ls authorized_keys2 id_dsa known_hosts config id_dsa.pub

我們需要尋找一對以 id_dsa 或 id_rsa 命名的文件,其中一個帶有 .pub 擴展名。 .pub 文件是你的公鑰,另一個則是私鑰。如果找不到這樣的文件(或者根本沒有 .ssh 目錄),你可以通過運行 ssh-keygen 程序來創建它們。在 Linux/Mac 系統中,ssh-keygen 隨 SSH 軟件包提供;在 Windows 上,該程序包含于 MSysGit 軟件包中。

$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/schacon/.ssh/id_rsa): Created directory '/home/schacon/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/schacon/.ssh/id_rsa. Your public key has been saved in /home/schacon/.ssh/id_rsa.pub. The key fingerprint is: d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

首先 ssh-keygen 會確認密鑰的存儲位置(默認是 .ssh/id_rsa),然后它會要求你輸入兩次密鑰口令。如果你不想在使用密鑰時輸入口令,將其留空即可。

現在,進行了上述操作的用戶需要將各自的公鑰發送給任意一個 Git 服務器管理員(假設服務器正在使用基于公鑰的 SSH 驗證設置)。他們所要做的就是復制各自的 .pub 文件內容,并將其通過郵件發送。公鑰看起來是這樣的:

$ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3 Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx NrRFi9wrf+M7Q== schacon@mylaptop.local

在你的 Github 賬戶中,依次點擊 Settings > SSH and GPG keys > New SSH key

然后,將上面生成的公鑰內容粘貼到 Key 編輯框并保存。至此大功告成。

后面,你在克隆你的 Github 項目時使用 SSH 方式即可。

克隆一個已創建的倉庫:

# 通過 SSH $ git clone ssh://user@domain.com/repo.git#通過 HTTP $ git clone http://domain.com/user/repo.git

總結

以上是生活随笔為你收集整理的关于Git你必须知道的的全部內容,希望文章能夠幫你解決所遇到的問題。

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