标签:etc github cache als nss art egit 平台 就是
git本地仓库的操作,详见:https://www.cnblogs.com/smilecindy/p/13767153.html
第一part:GitHub远程仓库
GitHub:是一个开源的软件项目代码的托管平台(代码管理平台---->所谓的中央服务器)
使用github创建远程仓库
实现Git文件内容上传到GitHub的话,有两种实现方式:基于http/https协议和基于ssh协议。
1.基于http/https协议:
步骤一:git clone 远程仓库地址,将远程仓库克隆到本地 或者使用git clone 远程仓库地址 -b 分支名 (从远程仓库的分支克隆到本地)
需要填写github的账号和密码:
鉴权完后则解决完443超时的错误。还有就是鉴权完后如果还出现443的情况的话则多次尝试push吧,因为服务访问的问题
git push -f origin master 强制合并进行push
步骤二:如果远程仓库有更新,则直接进行拉取最新的代码
1)fetch是将远程主机的最新内容拉到本地,不进行合并
git fetch<远程主机名> <远程分支名>
2)pull 则是将远程主机的master分支最新内容拉下来后与当前本地分支直接合并 fetch+merge
语法:git pull <远程主机名> <远程分支名>:<本地分支名> ,如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
思考:本地和远程仓库同时修改同一个文件,那么会产生冲突?
记住:每次提交的时候建议都先进行pull一次,如果服务器上有修改则会自动完成同一个文件的合并操作,然后后面的操作就跟前面解决冲突与的方式一模一样
步骤三:对本地仓库的代码进行操作(新增文件,修改文件,删除,提交,拉取分支,提交等操作)
注意:对远程仓库的文件进行操作,如果使用命令行的话,则都要在本地仓库先进行一系统的操作,最后在推送到远程仓库;也可以在github中直接进行操作在同步到本地
比如:命令删除远程仓库的文件或者目录:
1)先将暂存区的文件进行删除:git rm -r --cached 需要删除远程文件的名
2)进行提交生成历史版本:git commit -m "注释"
3)最后将生成的历史版本进行推送同步到远程仓库:git push 远程主机名 分支名
步骤四:将本地仓库代码推送到远程仓库,使用git push 远程主机名 分支名
git push 远程主机名 本地分支名 远程仓库创建分支通过本地创建分支进行同步(远程分支没有该分支,会实现推送本地分支到远程分支)
git push 远程主机名 :远程分支名----(删除远程分支)
git push -u 远程主机 本地分支名:远程分支名--- (同步本地分支的同时进行远程分支的重命名操作)
步骤五:合并代码:
在本地先将分支的代码进行合并到本地master中,再将本地master的代码推送到远程仓库的master中
2.基于ssh协议(推荐使用):
该方式与https方式相比,其主要改变时对github的用户身份鉴权的方式,后续的git的操作没有任何影响:
步骤一:生成客户端公私钥文件
需要安装OpenSSH,使用其完成公私钥文件的生成,安装成功之后,直接在cmb中输入ssh,如果显示如下,则安装成功:
在cmdb中执行:ssh-keygen -t rsa -C “注册邮箱地址”
注意:生成到当前用户目录,会存在与.ssh目录下
步骤二:在github上进行配置SSH,公钥文件信息
步骤三:直接使用ssh的地址完成克隆操作即可
步骤四:后续操作与https方式一样
第二part:github中的tag
github中的tag:相当于是实现标签的定义,制定标签信息
1.创建标签:git tag -a 标签名 -m "注释该标签的版本功能作用"
2.查询标签:git tag
3.将本地标签推送到远程仓库:git push 远程主机名 标签名
4.如果需要将本地的所有标签进行同步到远程仓库的:git push 远程主机名 --tags
5.删除远程仓库标签:git push origin --delete 标签名
6.删除本地仓库标签:git tag -d 标签名
第三part:忽略文件
忽略文件需要创建一个名为.gitignore文件,该文件用于进行声明忽略文件或者不忽略文件的规则,规则对当前目录以及其子目录都生效。
步骤一:需要在仓库目录下创建一个文件.gitignore文件,然后再该文件中声明忽略规则
步骤二:文件中的每一行指定一个忽略规则
优先级:当前目录定义规则,还可以实现父级目录的定义规则,依次类推
匹配语法:最常规的就是目录、文件
1)/目录名/ 目录名/ 父级目录/*
2)*.后缀
3)不忽略:!*.后缀
4)使用通配符? []
5)匹配多级目录 **
例如:test/**/world 表示匹配的可以是忽略test/world test/test1/world test/test1/test2/test3..../world
注意:针对.gitignore规则不生效的文件说明:.gitignore只能够忽略那些没有被track的文件,如果某些文件已经被写入到版本管理总的话,则修改.gitignore是无效的
解决不生效的问题:
1)先将暂存区中的文件进行删除使用命令:git rm -r --cached 文件名
2)提交生成历史版本:git commit -m "注释"
3)然后此时.gitignore文件会对刚才删除的文件进行忽略操作
标签:etc github cache als nss art egit 平台 就是
原文地址:https://www.cnblogs.com/smilecindy/p/13768377.html