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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Git理论、原理、操作

發布時間:2023/12/9 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git理论、原理、操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Git理論、原理、操作

  • Git簡介:
    一個開源的分布式版本控制系統。用于處理任何大大小小的項目,是一個開放源碼的版本控制軟件。
  • Git與SVG的區別:
    1、git是分布式的
    2、git把內容按元數據方式存儲,svg按文件
    3、git分支和svg分支不同。svg中就只是版本庫的另外一個目錄
    4、git沒有全局的版本號,svg有
    5、git的內容完整性要優于svg
  • Git安裝:
    1、Linux:
    2、Window:
    安裝包下載地址:https://gitforwindows.org/
    3、Mac
    下載地址為:http://sourceforge.net/projects/git-osx-installer/
  • Git使用前常用配置:
    1、 配置個人的用戶名稱和電子郵件地址:
$ git config --global user.name "runoob" $ git config --global user.email test@runoob.com

2、文本編輯器:

git config --global core.editor emacs

3、差異分析工具:

$ git config --global merge.tool vimdiff

4、查看配置信息: git config --list

$ git config --list也可以直接查閱某個環境變量的設定,只要把特定的名字跟在后面即可 $ git config user.name name
  • Git工作流程:
    一般工作流程如下:
    1、克隆 Git 資源作為工作目錄。
    2、在克隆的資源上添加或修改文件。
    3、如果其他人修改了,你可以更新資源。
    4、在提交前查看修改。
    5、提交修改。
    6、在修改完成后,如果發現錯誤,可以撤回提交并再次修改并提交。
  • Git工作區、暫存區、版本庫:
    概念:
    工作區:個人電腦里的項目目錄
    暫存區index:又叫索引,一般存放在“.git目錄下”
    版本庫master:工作區有一個隱藏目錄.git
    三者間關系:
  • Git創建倉庫:
    1、git init
git init //使用當前目錄作為Git倉庫, 執行完后會在當前目錄生成一個 .git 目錄。 git init newrepo // 初始化后,會在 newrepo 目錄下會出現一個名為 .git 的目錄$ git add *.c $ git add README $ git commit -m '初始化項目版本' 以上命令將目錄下以 .c 結尾及 README 文件提交到倉庫中

2、git clone:從現有 Git 倉庫中拷貝項目

git clone 時,可以所用不同的協議,包括 ssh, git, https 等,其中最常用的是 ssh,因為速度較快,還可以配置公鑰免輸入密碼。各種寫法如下: git clone git@github.com:fsliurujie/test.git --SSH協議 git clone git://github.com/fsliurujie/test.git --GIT協議 git clone https://github.com/fsliurujie/test.git --HTTPS協議
  • Git基本操作:
// 初始化 $ mkdir runoob // 新建文件夾 $ cd runoob/ // 轉到新文件夾目錄下 $ git init // 初始化 $ ls -a // 查看文件夾目錄 . .. .git $ cat hello.vue //查看 文件內容$ git clone [url] // 克隆項目。默認情況下,Git 會按照你提供的 URL 所指示的項目的名稱創建你的本地項目目錄。 通常就是該 URL 最后一個 / 之后的項目名稱。如果你想要一個不一樣的名字, 你可以在該命令后加上你想要的名稱。 $ cd 項目名稱 // 切換到i項目目錄下 $ ls // 查看項目目錄$ git branch //列出本地分支 $ git branch (branchname) // 創建分支 $ git branch -d (branchname) // 刪除分支 $ git checkout (branchname) // 切換分支,當你切換分支的時候,Git 會用該分支的最后提交的快照替換你的工作目錄的內容 $ git checkout -b (branchname) // 創建新分支并立即切換到該分支下$ git status // 查看在你上次提交之后是否有修改 $ git status -s // 獲得簡短的結果輸出將添加或修改提交到緩存: $ git add README hello.php // 添加多個指定的文件 $ git add . // 添加當前項目的所有文件git diff 有兩個主要場景: 查看執行 git status 的結果的詳細信息; 顯示已寫入緩存與已修改但尚未寫入緩存的改動的區別。 $ git diff // 查看尚未緩存的改動 $ git diff --cached // 查看已緩存的改動 $ git diff HEAD // 查看已緩存的與未緩存的所有改動 $ git diff --stat // 顯示摘要而非整個 diffgit commit將緩存區的內容添加到倉庫 git為了記錄用戶的每一次提交,所以第一步會確認需要配置用戶名和郵箱地址 $ git config --global user.name 'runoob' // 配置用戶名 $ git config --global user.email test@runoob.com // 配置郵箱地址git reset HEAD 命令用于取消已緩存的內容,即之前 git add 添加,但是工作區不受影響 $ git reset HEAD hello.php // 取消其中一個文件的緩存 $ git commit -m '說明' // 再執行 git commit,只會將 剩余的緩存文件的改動提交git rm 刪除文件 git rm <file> git rm -f <file> //刪除之前修改過并且已經放到暫存區域的話,則必須要用強制刪除選項 -f git rm --cached <file> //直接從暫存區刪除文件,工作區則不做出改變$ git checkout . $ git checkout -- <file> // 會用暫存區全部或指定的文件替換工作區的文件。這個操作很危險,會清除工作區中未添加到暫存區的改動。 $ git checkout HEAD . $ git checkout HEAD <file> 會用 HEAD 指向的 master 分支中的全部或者部分文件替換暫存區和以及工作區中的文件。這個命令也是極具危險性的,因為不但會清除工作區中未提交的改動,也會清除暫存區中未提交的改動。$ git merge (branchname) // 合并分支$ git push origin [branch] // 推送到遠程倉庫$ git log // 查看提交歷史 $ git log --oneline // 查看歷史記錄的簡潔的版本 $ git log --graph // 查看歷史中什么時候出現了分支、合并 $ git log --reverse // 逆向顯示所有日志 $ git log --author //只查找指定用戶的提交日志$ git tag -a v1.0 // 打標簽。比如說,我們想為我們的 runoob 項目發布一個"1.0"版本。 我們可以用 git tag -a v1.0 命令給最新一次提交打上(HEAD)"v1.0"的標簽。 -a 選項意為"創建一個帶注解的標簽"。 不用 -a 選項也可以執行的,但它不會記錄這標簽是啥時候打的,誰打的,也不會讓你添加個標簽的注解。$ git remote //查看當前配置有哪些遠程倉庫 $ git remote -v // 加上 -v 參數,你還可以看到每個別名的實際鏈接地址。 $ git remote rm [別名] // 刪除遠程倉庫$ git remote add origin2 git@github.com:tianqixin/runoob-git-test.git //添加倉庫 origin2 $ git remote rm origin2 //# 刪除倉庫 origin2提取遠程倉庫 $ git fetch origin // 1、從遠程倉庫下載新分支與數據 $ git merge origin/master // 2、從遠端倉庫提取數據并嘗試合并到當前分支
  • 遠程倉庫:
$ git remote add [shortname] [url] // 添加一個新的遠程倉庫本例以 Github 為例作為遠程倉庫,由于你的本地 Git 倉庫和 GitHub 倉庫之間的傳輸是通過SSH加密的,所以我們需要配置驗證信息: 使用以下命令生成 SSH Key: $ ssh-keygen -t rsa -C "youremail@example.com" 之后會要求確認路徑和輸入密碼回到 github 上,進入 Account => Settings(賬戶配置)=> 左邊選擇 SSH and GPG keys,然后點擊 New SSH key 按鈕,title 設置標題,可以隨便填,粘貼在你電腦上生成的 key驗證是否成功,輸入以下命令: $ ssh -T git@github.com Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.
  • Git 服務器搭建:
    2019 年開始 Github 私有存儲庫也可以無限制使用。
    這當然我們也可以自己搭建一臺 Git 服務器作為私有倉庫使用。

1、安裝Git

$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel $ yum install git

2、創建證書登錄
收集所有需要登錄的用戶的公鑰,公鑰位于id_rsa.pub文件中,把我們的公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。
如果沒有該文件創建它:

$ cd /home/git/ $ mkdir .ssh $ chmod 755 .ssh $ touch .ssh/authorized_keys $ chmod 644 .ssh/authorized_keys

3、初始化Git倉庫
首先我們選定一個目錄作為Git倉庫,假定是/home/gitrepo/runoob.git,在/home/gitrepo目錄下輸入命令:

$ cd /home $ mkdir gitrepo $ chown git:git gitrepo/ $ cd gitrepo$ git init --bare runoob.git Initialized empty Git repository in /home/gitrepo/runoob.git/ 以上命令Git創建一個空倉庫,服務器上的Git倉庫通常都以.git結尾。然后,把倉庫所屬用戶改為git: $ chown -R git:git runoob.git

4、克隆倉庫

$ git clone git@192.168.45.4:/home/gitrepo/runoob.git Cloning into 'runoob'... warning: You appear to have cloned an empty repository. Checking connectivity... done. 192.168.45.4 為 Git 所在服務器 ip ,你需要將其修改為你自己的 Git 服務 ip。 這樣我們的 Git 服務器安裝就完成。

總結

以上是生活随笔為你收集整理的Git理论、原理、操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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