(一)、配置SSH到Gitlab帐号
一、使用ssh-keygen生成密钥文件.ssh/id_rsa.pubhtml
[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]-----+
二、查看公钥的配置密文git
[root@zabbix-proxy0496 ~]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJLYoootIWqpvrvuCpdCzSQGFHt/AYrXo5eYiqU6f2x8e55EjlOTMchykdBdZH0E38T7E/0GVD5J4Juo0F4TKXQAS0Vcg3MvDdaMyJRUBliN+CP8PjiTcKmLBXXnFTyr2d7XSLrkOq7EMf5PXpvl/SK+ildMC0YKNm2bDcg6hTRdWMoSC9dqUY/xNXmCxAn020dolfyyMb8NBmQCZOjZUlyfZt0KFnyMU3I8Fa5ex6Ow8ymGcTRnc/oXrOhclVU7e7tZ+zpe0EibKcsd7vDvW/fXIIkU7DXEMxn5mldf8rq81Zij0YgmebFpHI34dQ4UK1ey7PhIR73tCktUdsUmVX root@zabbix-proxy0496
三、在gitlab上添加ssh-key登录github
(二)、经常使用操做
一、把相关的代码克隆下来缓存
[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
二、进相应的仓库查看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
三、建立相应的代码添加到暂存区并上传到gitlab服务器上dom
[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.
四、相关经常使用的命令ssh
[root@zabbix-proxy0496 yw]# git log ###查看历史提交记录 [root@zabbix-proxy0496 yw]# git reflog ###查看将来历史更新点 [root@zabbix-proxy0496 yw]#git reset --hard HEAD ###还原提交版本上一次,上一次提交版本HEAD #########git删除数据 一、 git rm --cached database #将文件从git暂存区域的追踪列表移除并不删除当前工做目录内的数据文件->只删除缓存 二、 git rm -f database 4 #将文件数据从git暂存区和工做目录一块儿删除->永久删除 ##########git重命名数据 三、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的日志
五、标签使用(通常用于commit以后)ide
[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命令就是用于将文件改动切换到不一样的空间来记录gitlab
(三)、分支的概念fetch
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分支
一、建立和切换分支
[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
二、合并分支
[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界面,您的代码文件能够被任何人克隆,使得开发者为开源项贡献代码变得更加容易,固然也能够付费购买私有库,这样高性价比的私有库真的是帮助到了不少团队和企业。
一、注册用户
二、配置ssh-key
三、建立项目
四、克隆项目到本地
五、推送修改到远程
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 对象