git学习

来源:互联网 发布:土豆视频mac版 编辑:程序博客网 时间:2024/06/05 05:42

        • 对git的理解
        • 2申请github远程仓库
          • 1生成公钥
        • 在本地创建版本库
          • 1把目录变成可以管理的仓库
          • 2配置git
          • 3添加文件到本地git仓库
          • 4在git仓库删除文件
        • 4远程仓库
          • 1上传到远程库
          • 2更新同步远程仓库到本地
          • 2从远程库克隆
          • 3删除远程仓库
        • 5创建和合并分支
          • 1合并分支的用途
          • 2冲突解决
        • 6标签管理



1对git的理解

 例如我们每天要提交代码,那么每天都有相应的任务量,但是一个完整的项目需要好多人协同并且好多天才能完成,因此我们每个人不能等到自己的代码全部写完才传到代码仓库,因此要每天向仓库提交一定的代码,知道自己的任务完成.并且git还能知道你每次提交对原有的代码进行了那些修改,如果觉的自己更新的代码不如以前的代码git还可以回退到以前的代码.
 在任意一个分支上面touch一个file文件,其他的分支上面都有这个文件,将文件git add file之后,每个分支上面还是有,但当在任意一个分支上面git commit之后,则只有那一个分支上面有文件file
—————->这个特性造成文件的多人合作.一个文件需要不同的技术人员添加各自的模块,那么每个技术人员所处不同的分支,只需要在自己的分支上面编辑文件file,然后add添加到仓库中,最终当所有的人将模块都添加完成,此时就可以将内容merge合并提交到远程的master仓库

2申请github远程仓库

申请完成后,通常为了自己本机能够通过ssh访问远程仓库需要在远程仓库中添加自己主机的公钥。

2.1生成公钥

ssh-keygen命令,生成的公钥在目录/home/用户名/.ssh/下面,讲文件id_rsa.pub内容粘贴在SSH and GPG keys 选项栏

3.在本地创建版本库

3.1把目录变成可以管理的仓库

建一个空目录,执行git init会看到生成一个隐藏文件.git
git init

3.2配置git

配置您的名字和邮箱,这里用户名
gitconfigglobaluser.namexxxxxxx git config –global user.email xxxxx@example.com
查看自己的配置信息
gitconfiglist,push便git remote add 自己起的别名 https://github.com/自己的github账号/自己分支名称
例如:git remote add Git_repository https://自己的github账号/自己仓库名称
配置好后可以查看自己远程仓库的信息
$git remote -vvv
Git_repository https://github.com/xxxxxxxxxx/Git_repository (fetch)
Git_repository https://github.com/xxxxxxxxxx/Git_repository (push)

3.3添加文件到本地git仓库

git add file1
添加之后可以通过git status查看状态。
 然后提交到本地仓库
$git commit -m “这里可以注明你提交的注释”
这里写图片描述
$git push origin master
将本地master分支推送到远程仓库origin

3.4在git仓库删除文件

git rm file1
git commit -m “delete file”
git push origin master
记得删除完后要重新push一下,不然仅仅是本地的file1删除了.远程仓库中还有file1文件

4远程仓库

可以在github上面注册.

4.1上传到远程库

查看已经存在的远程仓库,
git remote
如要查看远程仓库更加详细的信息
git remote -vvv
查看远程仓库分支信息
git remote show Git_repository,,这里我的远程仓库的别名叫做Git_rewpository
显示如下:
远程 Git_repository
获取地址:https://github.com/xxxxxxxxx/Git_repository
推送地址:https://github.com/xxxxxxxxx/Git_repository
HEAD 分支:master
远程分支:
dev 已跟踪
master 已跟踪
mnt 已跟踪
mnt_test4 已跟踪
为 ‘git push’ 配置的本地引用:
dev 推送至 dev (最新)
master 推送至 master (最新)
mnt 推送至 mnt (最新)
mnt_test4 推送至 mnt_test4 (最新)

git push Git_repositoy master
推送本地master分支到远程Git_repository仓库的master分支相当于
git push Git_repositoy master:master
git push Git_repositoy dev
推送本地dev分支到远程dev分支
git push Git_repository dev:master
推送本地dev分支到远程master分支

如果本地仓库mnt分支与远程仓库Git_repository的mnt分支不一样,则会导致本地添加的新文件无法提交到远程仓库,因此需要获取远程仓库的最新版本并且合并到本地mnt分支,这样就可以提交本地mnt分支上面的新文件了
git pull Git_repository mnt

4.2更新同步远程仓库到本地

git pull Git_reposity master
git pull:相当于是从远程获取最新版本并merge到本地
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并

4.2从远程库克隆

git clone git@github.com:michaelliao/gitskills.gi

4.3删除远程仓库

git remote rm Git_repository

5创建和合并分支

git branch 查看所有分支
git checkout dev 创建分支dev
git merge dev 合并分支
git branch -d dev 删除分支dev

5.1合并分支的用途:

git checkout master
git merge mnt
通常自己的一个项目要一个星期才能完成,那么不想每天把没完成的项目推送到小组项目仓库master分支上,但是还想自己的队友知道自己的项目进行到什么地方,因此可以创建一个新的分支,mnt在这个分支写自己的项目,并且每天add,,这样其他成员所处的分支也可以看见自己的项目,等项目全部完成就将mnt分支合并到master分支上面git merge mnt,然后git push master即可

5.2冲突解决

如果项目是多人合作有可能合并不了,会起冲突,例如dev分支的成员将file修改,并且git add; git commit而mnt分支的成员也将file修改并且git add ; git commit现在merge两个分支,
会出现如下错误:

自动合并 file
冲突(添加/添加):合并冲突于 file22
自动合并失败,修正冲突然后提交修正的结果
错误提示,因此要手动解决冲突

首先查看冲突git diff
1.修改的少可以直接在文件中改
2.修改的多,用mergetool工具
设置mergetool工具为vimdiff
Git config –global merge.tool vimdiff
查看所有设置
Git config –list
输入git mergetool进行文件修改
修改完成后git commit -m进行完成合并操作,然后push一下即可

6标签管理

git 的标签管理。跟大多数的 VCS 工具一样,git 也有在历史状态的关键点“贴标签”的功能,一般人们用这个功能来标记发布点(例如’v1.0′)
给某次提交打标签
git tag -a v0.1 -m “updata mnt”
查看所有标签
git tag
查看标签的详细信息
git show v0.1
后期打标签:
显示提交历史:
git log –pretty=oneline
给某次提交打标签
git tag -a v0.1 43045b(43045b是提交历史的编号)
推送标签到远程
git push Git_repository v0.1
默认情况下,git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。 所以git push origin [tagname]即可.
git push Git_repository –tags
一次性推送很多标签

0 0