git基本使用

git基本使用

初始化、推送、拉取

初始化一个库
git init

增加到远程库
git remote add origin [地址git@xxx.xxx.xx/xxx/xxx.git]

拉取远端的库
git pull

拉取指定代码
git clone [git地址]

拉取指定tag的代码
git clone --branch [tags标签] [git地址]

添加子模块
git submodule add -b 分支  [地址git@xxx.xxx.xx/xxx/xxx.git]

拉取的时候,同时拉取子模块
git clone --recursive [地址git@xxx.xxx.xx/xxx/xxx.git]

把当前开发库作为裸仓库,给其他开发环境更新、推送使用。
git config --bool core.bare true

添加、撤销、提交、推动基本操作

变更文件添加到缓存区
git add xxx.c

从缓存区撤销
git reset xxx.c

提交到本地库
git commit -m "description xxxxx"

推送到远端库
git push

示例:关联远端仓库

git关联远程仓库
1、在远端建立仓库,再gitlab服务管理台上操作

2、在本地目录下创建仓库并初始化
在xxx目录下  执行 git init

3、关联远端仓库
git remote add origin [地址git@xxx.xxx.xx/xxx/xxx.git]

4、本地编辑代码后提交至远程分支
git push -u origin master

合并分支

1、将其他分支YYYY合并到当前工作分支下
git merge YYYY

2、删除本地分支YYYY
git branch -d YYYY

3、删除远端分支YYYY
git push origin --delete YYYY

4、获取远端YYYY分支
git pull origin YYYY
[切换到YYYY分支]
git checkout YYYY

分支对比和日志对比

1. 显示出branch1和branch2中差异的部分
git diff branch1 branch2 --stat

2. 显示指定文件的详细差异
git diff branch1 branch2 具体文件路径

3. 显示出所有有差异的文件的详细差异
git diff branch1 branch2

4. 查看branch1分支有,而branch2中没有的log
git log branch1 ^branch2

5. 查看branch2中比branch1中多提交了哪些内容
git log branch1..branch2
注意,列出来的是两个点后边多提交的内容。

6. 不知道谁提交的多谁提交的少,单纯想知道有什么不一样
git log branch1...branch2

7. 在上述情况下,在显示出没个提交是在哪个分支上
git log --lefg-right branch1...branch2

8. 分支重命名
git branch -m feature-branch feature-update

设置忽略的文件

.gitignore
空格不匹配任意文件,可作为分隔符,可用反斜杠转义
开头的文件标识注释,可以使用反斜杠进行转义
! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
/ 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
/ 开始的模式匹配项目跟目录
如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
** 匹配多级目录,可在开始,中间,结束
? 通用匹配单个字符
* 通用匹配零个或多个字符
[] 通用匹配单个字符列表

.gitignore只能忽略原来没有track的文件,如果已经纳入了版本管理中,则修改.gitignore文件是无效的。需要做以下处理,删除本地缓存改成未track状态,然后提交
git rm -r --cached .
git add .gitignore
git commit -m 'update .gitignore'
也可以删除单个文件的跟踪
git rm --cached xxx.yy

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注