您好,登錄后才能下訂單哦!
(一)、配置SSH到Gitlab賬號
1、使用ssh-keygen生成密鑰文件.ssh/id_rsa.pub
[root@zabbix-proxy0496 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:3DpddsSwRtOfMSDE8NSancZpL9sP7LPKFZQmjc2BWxc root@zabbix-proxy0496
The key's randomart image is:
+---[RSA 2048]----+
| .++=+oE.|
| ooo@o=.|
| .Xo%o+|
| . . +.% ..|
| S . = + |
| o o + o |
| o . B |
| . . +.o |
| o.ooo|
+----[SHA256]-----+
2、查看公鑰的配置密文
[root@zabbix-proxy0496 ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJLYoootIWqpvrvuCpdCzSQGFHt/AYrXo5eYiqU6f2x8e55EjlOTMchykdBdZH0E38T7E/0GVD5J4Juo0F4TKXQAS0Vcg3MvDdaMyJRUBliN+CP8PjiTcKmLBXXnFTyr2d7XSLrkOq7EMf5PXpvl/SK+ildMC0YKNm2bDcg6hTRdWMoSC9dqUY/xNXmCxAn020dolfyyMb8NBmQCZOjZUlyfZt0KFnyMU3I8Fa5ex6Ow8ymGcTRnc/oXrOhclVU7e7tZ+zpe0EibKcsd7vDvW/fXIIkU7DXEMxn5mldf8rq81Zij0YgmebFpHI34dQ4UK1ey7PhIR73tCktUdsUmVX root@zabbix-proxy0496
3、在gitlab上添加ssh-key登陸
(二)、常用操作
1、把相關的代碼克隆下來
[root@zabbix-proxy0496 gitlab]# git clone git@192.168.4.97:lqb/yw.git
Cloning into 'yw'...
The authenticity of host '192.168.4.97 (192.168.4.97)' can't be established.
ECDSA key fingerprint is SHA256:7OoUZ9xWrE2sHmPq57C3L/DJdhX+zrrYlm58tboarqQ.
ECDSA key fingerprint is MD5:fa:38:e5:fc:90:d2:37:47:d4:0f:56:94:2e:8b:44:50.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.4.97' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 25, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 25 (delta 6), reused 0 (delta 0)
Receiving objects: 100% (25/25), 67.95 KiB | 0 bytes/s, done.
Resolving deltas: 100% (6/6), done.
[root@zabbix-proxy0496 gitlab]# ls
yw
2、進相應的倉庫查看git狀態
[root@zabbix-proxy0496 gitlab]# cd yw/
[root@zabbix-proxy0496 yw]# git status
# On branch master
nothing to commit, working directory clean
[root@zabbix-proxy0496 yw]# ls
1.png CONTRIBUTING.md Dockerfile lqb README.md test.sh
3、創建相應的代碼添加到暫存區并上傳到gitlab服務器上
[root@zabbix-proxy0496 yw]# echo "this is first " > index.html
[root@zabbix-proxy0496 yw]# cat index.html
this is first
[root@zabbix-proxy0496 yw]# git add index.html
[root@zabbix-proxy0496 yw]# git commit -m 'first commit'
[master 7d6a20e] first commit
1 file changed, 1 insertion(+), 1 deletion(-)
[root@zabbix-proxy0496 yw]# git push -u origin master
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 519 bytes | 0 bytes/s, done.
Total 6 (delta 2), reused 0 (delta 0)
To git@192.168.4.97:lqb/yw.git
4497bc1..7d6a20e master -> master
Branch master set up to track remote branch master from origin.
4、相關常用的命令
[root@zabbix-proxy0496 yw]# git log ###查看歷史提交記錄
[root@zabbix-proxy0496 yw]# git reflog ###查看未來歷史更新點
[root@zabbix-proxy0496 yw]#git reset --hard HEAD ###還原提交版本上一次,上一次提交版本HEAD
#########git刪除數據
1、 git rm --cached database #將文件從git暫存區域的追蹤列表移除并不刪除當前工作目錄內的數據文件->只刪除緩存
2、 git rm -f database 4 #將文件數據從git暫存區和工作目錄一起刪除->永久刪除
##########git重命名數據
3、git mv README NOTICE #### README修改前/NOTICE修改后;最后進行提交git倉庫 2 注意:也可mv修改名稱→刪除git倉庫的文件快照git rm '*.txt'→將新的文件添加進去→提交git倉庫
備注:
git rm -f filename #刪除工作區和暫存區的文件
(use --cached to keep the file, or -f to force removal)?
git diff file #比較本地vs暫存區
git diff --cached file #暫存區vs本地版本庫
git log --oneline # 一行顯示
--decorate # 具體操作?
git log -p #顯示詳細信息
git log -1 #顯示1條
commit 相當于做快照
從暫存區恢復到本地工作區
git checkout -- file # 撤銷工作區更改
從版本庫恢復[覆蓋]到暫存區(暫存區錯誤add交)
git reset HEAD file
從版本庫回退到版本[某一次commit版本]
git reset --hard f34j34
回退后,回退點之后的git log 日志看不到
git reflog 查看所有commit的日志
5、標簽使用(一般用于commit之后)
[root@zabbix-proxy0496 yw]# git tag v2.0 #####給當前內容打上標簽
[root@zabbix-proxy0496 yw]# git show v2.0 #####查看當前版本v2.0標簽的詳細信息
[root@zabbix-proxy0496 yw]# git tag v2.1 -m "version 2.1 release is test" #######對當前版本(最新)打標記,用于commit提交之后接著進行打標記(-a指定標簽名,-m為說明信息)
[root@zabbix-proxy0496 yw]# git tag #####查看當前所有標簽
v1.0
v2.0
v2.1
[root@zabbix-proxy0496 yw]# git tag -d v2.0 ######刪除標簽v2.0
Deleted tag 'v2.0' (was 1c2bec9)
[root@zabbix-proxy0496 yw]# git reset --hard v2.2
HEAD is now at 02318ea this is second
[root@zabbix-proxy0496 yw]# git reset --hard 02318ea #######快速回滾
HEAD is now at 02318ea this is second
Workspace:工作區
Index/Stage/Cached:暫存區
Repository:本地倉庫
Remote:遠程倉庫
Git命令就是用于將文件改動切換到不同的空間來記錄
(三)、分支的概念
Git的分支,從本質上來講僅僅是指向提交對象的可變指針。在這一點上與SvN是有著本質的區別。SVN的分支實際上就是一個目錄。
Git的默認分支名字是master。在多次提交操作之后,你其實已經有一個指向最后那個提交對象的master分支。它會在每次的提交操作中自動向前移動。
git 分支如下圖
常用的命令如下:
git branch #查看分支
git checkout dev #切換分支
git merge dev # 合并分支
如果修改了同一個文件,合并時會沖突,需要確定修改內容
在master 修改沖突的文件,add 提交,commit -->合并完成
git brach -d dev 刪除分支
在實際的項目開發中盡量保證master分支穩定,僅用于發布新版本,平時不要直接修改里面的數據文件。而開發都在dev分支進行修改,即每個人從dev分支創建自己個人分支,開發完合并到dev分支,最后合并到master分支
1、創建和切換分支
[root@zabbix-proxy0496 yw]# git branch dev #####創建分支
[root@zabbix-proxy0496 yw]# git branch #####查看分支情況當前分支有*號
dev
* master
[root@zabbix-proxy0496 yw]# git checkout dev #######切換分支
Switched to branch 'dev'
[root@zabbix-proxy0496 yw]# git checkout index.html ######一鍵還原,直接將git倉庫的文件覆蓋當前文件[危險]
[root@zabbix-proxy0496 yw]# git branch
* dev
master
2、合并分支
[root@zabbix-proxy0496 yw]# git checkout master ####切換分支
Switched to branch 'master'
[root@zabbix-proxy0496 yw]# git merge dev ####dev分支合并到master
Merge made by the 'recursive' strategy.
1.log | 1 +
1 file changed, 1 insertion(+)
create mode 100644 1.log
[root@zabbix-proxy0496 yw]# git branch
dev
* master
[root@zabbix-proxy0496 yw]# tree
.
├── 1.log
├── 1.png
├── CONTRIBUTING.md
├── Dockerfile
├── index.html
├── lqb
├── README.md
└── test.sh
[root@zabbix-proxy0496 yw]# git branch -d dev ######刪除dev分支
Deleted branch dev (was a9b4292).
[root@zabbix-proxy0496 yw]# git branch
* master
(四)、Github
Github顧名思義是一個Git版本庫的托管服務,是目前全球最大的軟件倉庫,擁有上百萬的開發者用戶,也是軟件開發和尋找資源的最佳途徑,Github不僅可以托管各種Git版本倉庫,還擁有了更美觀
的Web界面,您的代碼文件可以被任何人克隆,使得開發者為開源項貢獻代碼變得更加容易,當然也可以付費購買私有庫,這樣高性價比的私有庫真的是幫助到了很多團隊和企業。
1、注冊用戶
2、配置ssh-key
3、創建項目
4、克隆項目到本地
5、推送修改到遠程
echo "#git">> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:lewen/git.git
git push -u origin master
git remote add origin git@github.com:lewen/git.git
git push -u origin master
ssh-keygen -t rsa
將公鑰添加到 一個公鑰在github只能綁定一次
將遠程的拉下來,合并后,再 push
git fetch 將遠程的更新到本地
git merge origin/master 合并遠程的到本地master
先拉,再合并,再推
#####常用的命令
1 add #添加文件內容至索引
2 branch #列出、創建或刪除分支
3 checkout #檢出一個分支或路徑到工作區
4 clone #克隆一個版本庫到一個新目錄
5 commit #記錄變更到版本庫
6 init #創建一個空的 Git 版本庫或重新初始化一個已存在的版本庫
7 log #顯示提交日志
8 merge #合并兩個或更多開發歷史
9 mv #移動或重命名一個文件、目錄或符號鏈接
10 pull #獲取并合并另外的版本庫或一個本地分支
11 push #更新遠程引用和相關的對象
12 rm #從工作區和索引中刪除文件
13 show #顯示各種類型的對象
14 status #顯示工作區狀態
15 tag #創建、列出、刪除或校驗一個GPG簽名的 tag 對象
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。