git分布式版本控制的学习使用记录
- 2019 年 11 月 28 日
- 筆記
git分布式版本控制的学习使用记录
工作后才了解到有这样的高效率程序控制,记录下我的使用学习过程,一方面可以帮助新手上路,也可以作为知识网络的备份。
1:git的用处
用于分布式的项目管理,可以用于个人的代码长期保存,可以方便快捷的参与开源项目。
使用教程:
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
github网站:https://github.com/
说明书:http://pan.baidu.com/s/1jGxjQL4#path=%252Fgit
是git的远程仓库,是世界最大的开源项目聚集区,可以作为企业的代码托管基地。并且和多个项目管理网站挂钩。
2:安装方式
Python
ubuntu下:su<span class="operator"><span class="keyword">do</span> apt-<span class="keyword">get</span> install git</span>
1 |
ubuntu下:su<span class="operator"><span class="keyword">do</span> apt-<span class="keyword">get</span> install git</span> |
---|
msysgit是Windows版的Git,从http://msysgit.github.io/下载
3:本地仓库使用
对于新的机器需要设定用户名和邮箱
Python
<span class="variable">$ </span>git config –global user.name <span class="string">"Your Name"</span> <span class="variable">$ </span>git config –global user.email <span class="string">"[email protected]"</span>
12 |
<span class="variable">$ </span>git config –global user.name <span class="string">"Your Name"</span><span class="variable">$ </span>git config –global user.email <span class="string">"[email protected]"</span> |
---|
(1):
创建一个版本库(仓库)
Python
<span class="variable">$ </span>mkdir mycode //建立一个文件夹 <span class="variable">$ </span>cd mycode //进入这个文件夹 <span class="variable">$ </span>pwd //显示我的路径(路径不能有中文) /<span class="constant">Users</span>/michael/learngit git init //初始化一个仓库
1234567 |
<span class="variable">$ </span>mkdir mycode //建立一个文件夹<span class="variable">$ </span>cd mycode //进入这个文件夹<span class="variable">$ </span>pwd //显示我的路径(路径不能有中文)/<span class="constant">Users</span>/michael/learngit git init //初始化一个仓库 |
---|
在目录下写一个记事本文件,使用
git add 文件名.txt 也可以 git add . 这个点很重要
就能够吧该文件加入到仓库中
git commit -m “add a txt” 加入到版本库中
git status 查看自己版本库的状态
git diff 查看详细修改的部分 必须是文本文件
git log 查看历史记录
git reset 回退命令
Git必须知道当前版本是哪个版本,在Git中,用HEAD
表示当前版本,也就是最新的提交,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
现在要把当前版本回退到上一个版本就可以使用git reset
命令:
git reflog 操作记录
可以用于找到所有版本号从而回退到任何时期的版本
关于暂存区
第一次修改 -> git add
-> 第二次修改 -> git commit
结果是第二次修改的没有到版本库中
Git管理的是修改,当你用git add
命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit
只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。每次修改,如果不add
到暂存区,那就不会加入到commit
中。
git checkout -- file
可以丢弃工作区的修改:
git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区:
git rm
用于删除文件
2:远程仓库的使用
这个干货还是直接看链接吧
Python
git remote add origin 网站上的ssh链接
1 |
git remote add origin 网站上的ssh链接 |
---|
从现在起,只要本地作了提交,就可以通过命令:
Python
<span class="variable">$ </span>git push origin master git clone ssh地址 从远程库中克隆一个出来。 Git支持多种协议,包括<code>https</code>,但通过<code>ssh</code>支持的原生<code>git</code>协议速度最快。
1234 |
<span class="variable">$ </span>git push origin master git clone ssh地址 从远程库中克隆一个出来。Git支持多种协议,包括<code>https</code>,但通过<code>ssh</code>支持的原生<code>git</code>协议速度最快。 |
---|
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场。
git stash list 查看工作现场列表
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了:
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>
强行删除。
因此,多人协作的工作模式通常是这样:
- 首先,可以试图用
git push origin branch-name
推送自己的修改; - 如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; - 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用
git push origin branch-name
推送就能成功!
如果git pull
提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name
。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
- 查看远程库信息,使用
git remote -v
; - 本地新建的分支如果不推送到远程,对其他人就是不可见的;
- 从本地推送分支,使用
git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交; - 在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致; - 建立本地分支和远程分支的关联,使用
git branch --set-upstream branch-name origin/branch-name
; - 从远程抓取分支,使用
git pull
,如果有冲突,要先处理冲突。
原创文章,转载请注明: 转载自URl-team
本文链接地址: git分布式版本控制的学习使用记录
No related posts.