Git是一款开源分布式版本控制系统,能够帮助Linux管理内核开发,那么Linux要如何使用Git,下面就是Linux使用Git的方法:
初始化git仓库,使用git init命令
添加文件到git仓库分两步:
1、使用git add filename ;可分多次使用,添加多个文件到暂存区
2、使用git commit -m “说明” ;完成提交到分支
查看工作区状态,使用git status 命令;如果提示有修改可使用git diff filename 查看修改内容
HEAD指向当前版本,HEAD^表示上一个版本,HEAD^^上上一个版本……HEAD~100指向之前第100个版本。
回退版本:使用git log查看提交历史;使用git log --pretty=oneline 精简显示
使用git reset --hard commit_id 回退到版本号为commit_id的版本
回退版本之后如果想再看改回来,可以使用git reflog 查看历史命令,找出想改回的版本号,再使用git reset hard commit_id 返回即可。
注意:git跟踪并管理的是修改,而不是文件,如果一个文件修改并add之后,再次修改,如果不再次add就提交的话,只会提交第一次的修改。
撤销修改:
1、如果文件还在工作区,即没有add也没有commit,则使用git checkout -- filename 还原到服务器版即可;
2、如果已经add到暂存区,首先使用git reset HEAD filename从暂存区取回工作区,再按照1进行 *** 作即可;
3、如果已经提交到版本库,则按照版本回退的方式进行修改即可;
4、如果已经push到远程仓库,就麻烦了
删除使用以下命令:
1、git rm filename 从工作区删除
2、git commit -m ”说明“ 更新分支中文件进行删除
将在工作区的文件删除之后,可以使用git checkout -- filename 从分支中取回,但是只能恢复文件到最新版本,最后一次提交之后的修改则不能恢复。
分支:
1、创建分支
git checkout -b branchname 创建并切换到改分区,相当于一下两个命令:
git branch branchname 创建分支
git checkout branchname 切换到分区
2、查看当前指向的分支:git branch 会列出所有分支,当前指向的分支之前多了个
3、切换分支就是git checkout branchname
4、合并分支:git merge branchname 合并branchname到当前分支
5、删除分支:git branch -d branchname 删除branchname分支
注意:创建、合并、删除分支都非常快,git鼓励使用分支完成某个任务,合并后删除分支,和直接在master分支上进行工作是一样的效果,但是过程更加安全; 这些之所以快是因为在这些过程中我们只是修改了指向分支的指针,如创建一个branch就是创建了一个指向分支的指针,然后修改HEAD指向该指针;即HEAD指向分支,分支就是提交。
冲突解决:
git无法自动合并分支时,就必须首先解决冲突;解决冲突之后,再提交,即完成了合并
使用git log --graph 可以查看分支合并图。
保存工作现场 git stash 保存之后就可以进行其他工作 而不影响上次的修改
恢复工作现场:
1、git stash apply 恢复时并不删除stash中内容
2、git stash pop 恢复时会删除stash中的内容
远程库信息产看使用git remote (-v)加上-v显示信息更加详细
分支推送到远程库:即将所有本地的提交推送到远程库
git push origin(远程库名) master (要推送的分支)
抓取分支:git pull ; git clone
协作模式:
1、使用git push origin branchname 推送自己的修改
2、如果推送失败,因为远程分支比本地更新,先使用git pull 合并
3、如果合并有冲突,解决冲突,在本地提交
4、再推送
注意:如果使用git pull 合并时提示 ”no tracking information“说明本地分支没有和远程分支建立链接关系,使用以下指令建立关系:git branch --set -upstream branch origin/branchname
在本地创建与远程对应的分支:git branch -b branchname origin/branchname 本地与远程分支的名称最好一致
创建标签
1、打标签git tag name 默认标签打在最新提交的commit上,如果想打在其他版本上,找到commit_id即可
2、显示标签:git log -pretty=oneline --abbrev -commit
git tag tag_name commit_id
3、查看标签:git tag 显示所有标签
4、查看标签信息:git show tag_name
5、创建带有说明的标签: git tag -a tag_name -m ”信息“;-a表示标签名,-m指定说明文字
*** 作标签:git tag -d tag_name 删除标签
推送标签到远程库:git push origin tag_name
一次推送所有标签到远程库:git push origin --tag
上面就是Linux使用Git的方法了。
用时候在用git pull命令的时候不管用,拉取不下来远程分支上的代码,是因为本地分支和远程分支没有建立关联。处理这种问题很简单就按照提示执行命令即可:git branch --set-upstream-to=origin/fixbug-298 fixbug-298
如果想保证这种情况不出现就在建立新分支推送到远程分支上的时候加上-u参数即可
git push -u origin feature-v因为使用github仓库存放Hexo博客速度太慢,所以自己买了腾讯云的服务器,现在开始把博客部署到腾讯云,由于域名还没有审核通过,暂时使用公网ip访问
本地环境: win7
服务器: 腾讯云
使用工具: Xshell, Xftp, git
使用Xshell工具(root用户)远程登录腾讯云
此时打开浏览器,输入公网IP+端口,进入nginx的欢迎页面
修改根目录root为/home/> 走到这一步就算是大功告成,浏览器输入 >git api的使用方法
文章中的localhost:3000为你的git服务器路径及端口
1、api文档 登陆界面底站 help链接,点开就能找到
2、api使用中权限问题
在请求的url后面加上private_token=f7xxcTwDCXxxxxs 相当于帐号密码除非重置,否则长期有效
private_token从帐号中查找 >原文地址: >
OS:CentOS 72
Git:1831
备份模式:
以下步骤以双机备份为例,单机备份同理,只是在镜像git项目的时候把git url换成单机中的git项目目录即可。
首先,查看系统软件库中是否有git和git的版本:
CentOS 72环境下的输出如下:
CentOS 7x版本的仓库中已经附带了1831版本的git,可以直接安装。
CentOS 6x中的git是17x版本,自带库中git版本低的linux发行版可以添加git1831的源来安装git,但这个 *** 作要求本机能访问互联网
其他版本的git理论上也可以,请自行测试
结果最后显示“安装完成”或“Complete”表示安装成功。可以直接使用git命令测试一下:
输出如下表示git安装成功并可用。
创建一个git用户,用来提供给外部用户以git url的方式访问git库。
在用户目录或其他对外目录中创建 /git/repos 目录,用来存放git库。
注意: 尽量使用git用户来创建该目录,方便以后git *** 作该目录,如果是使用其他用户创建的,记得使用以下命令将该目录的owner改为git:
为了方便访问,可以在根目录下创建一个软链连接到该目录:
这样设置后,假如以后有一个库叫 testgit ,那么就可以通过以下url来访问git库了:
创建一个测试库用来测试备份及连通性。
同主GIT服务器的《安装git》章节。
同主GIT服务器的《创建git库目录》章节。
目录结构尽量与主git服务器上的结构一致,如果不一致,使用软链的形式将git url配置为与主git服务器一致,这样保证在切换服务器时,客户端不用做修改 *** 作。
以上个步骤中创建的 testgit 为例:
这样,主git服务器中的 testgit 就镜像到备份机中了。
如果主服务器的git项目发生了变更,可以将变更同步到备份机。
将以上同步命令写成脚本,添加一个定时任务来定时同步即可。
(待补充)
备份同步时每次都需要输入主git服务器的密码,比较麻烦,也不利于定时同步的脚本 *** 作,可以使用ssh免密登录的方式,在主服务器上配置备份服务器的公钥。
一路Enter(回车键),完成后会打印出密钥的生成位置,通常在用户主目录的 ssh 目录中。默认情况下会生成以下两个文件:
一定要注意上述命令中的第三步,权限要设置对,否则认证不过去不能免密登录。
如果在实际运行中,主git服务器挂了一段时间,在这段时间里一直是备份git服务器在工作,那么在修复好主服务器后需要将这一段时间的变更同步回主服务器。
*** 作完成后备份库自上一次同步后的更改都推送到了主库。
git拉取代码到本地的方法是:
打开git命令窗口,输入命令git clone github仓库地址,然后回车即可拉取代码到本地仓库。
在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的 *** 作git,能够上传和下拉最新代码。
Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper。
Git的功能特性:
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
首先先来了解一下git的四种传输协议:本地、ssh、git和>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)