758 瀏覽數

Linux command – git

還不太會用 git 下載原始碼 (source code) 的檔案,所以來研究一下一般使用者要如何使用 git.

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git 主要是用於分散式版本控制的軟體,而 GitHub 提供給使用 Git 的方式進行版本控制的軟體原始碼代管服務.所以我們有需要的 原始碼 幾乎都可以在 GitHub 找到.

如我要下載 MariaDB 的 Galera 的 原始碼,就不用上官方網站執行下載檔案,再將檔案複製到你要編譯原始碼的系統裡,然後再解壓縮 unzip ,解包 tar …之類的工作.
#git clone – 複製遠端的原始碼

[root@localhost ~]# git clone https://github.com/MariaDB/galera
Cloning into 'galera'...
remote: Counting objects: 31216, done.
remote: Total 31216 (delta 0), reused 0 (delta 0), pack-reused 31216
Receiving objects: 100% (31216/31216), 14.14 MiB | 1.93 MiB/s, done.
Resolving deltas: 100% (23652/23652), done.

Galera 檔案就下載到 galera 目錄裡了.

透過 #git status 或是 #git config –list ,可以得知這 原始碼 目前版本以及其他訊息.

[root@localhost ~]# cd galera
[root@localhost galera]# git status
# On branch 3.x
nothing to commit, working directory clean
[root@localhost galera]# git config --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://github.com/MariaDB/galera
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.3.x.remote=origin
branch.3.x.merge=refs/heads/3.x

Checkout – 檢查遠端原始碼的分支,有的話就可以從遠端原始碼複製該分支到本地端是使用.

[root@localhost galera]# git checkout 25.3.10
Branch 25.3.10 set up to track remote branch 25.3.10 from origin.
Switched to a new branch '25.3.10'
[root@localhost galera]# git config --list
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=https://github.com/MariaDB/galera
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.3.x.remote=origin
branch.3.x.merge=refs/heads/3.x
branch.25.3.10.remote=origin
branch.25.3.10.merge=refs/heads/25.3.10
[root@localhost galera]# git checkout 25.3
error: pathspec '25.3' did not match any file(s) known to git.
[root@localhost galera]# git checkout 25.3.10
Already on '25.3.10'

git 更多的使用請參考 https://backlogtool.com/git-guide/tw/reference/remote.html#sec1

發表迴響