git的使用
1.先创建本地仓库 git init
2.再把远程仓库clone到本地
步骤:
1、编写代码后,git add niu.py。# 使用git add 添加到暂存区
2、git commit -m “将niu.py添加到本地仓库” # git commit将暂存区的文件添加到本地仓库
3、git push 将本地仓库的文件,推送到远程仓库
git push -u 分支名称
4.注:git push 后要跟所在的分支
git status 查看当前仓库的状态信息
git init 初始化仓库,初始化完成以后文件夹就会生成一个.git的隐藏文件,这个.git所在的文件夹,就是本地仓库,它会记录你所有的变更记录
-
将单个文件添加到暂存区
-
git add [filename,比如1.txt or main.py]
-
加入暂存区以后,这个文件名称的颜色就会变绿,注没执行git add 之前这个文件名称的颜色是红色的
-
-
将所有变更的文件全部一次加入到暂存区
-
git add . 添加所有
-
-
将提交到暂存区的文件提交
-
git commit -m<message>
-
git commit -m "main.py改变编码为utf-8"
-
再提交之后就可以看到日志显示 x files changed
-
0 insertios(+) 表示0个也就是没有代码增加
-
0deletions(-) 表示0个也就是没有代码减少
-
-
-
commit 提交以后,可以通过git log 可以看到什么人在什么时间提交了一个什么样的commit(也就是commit -m 跟的message),每一个commit会生成一个hash值,这个值是唯一的,也可以说是本次提交的版本号
-
小的总结
-
当你变更了文件的时候,用git status 查看时,被修改的文件名称会变红,这个时候通过git add 添加到暂存区以后就会变绿,再使用git commit 提交到仓库
-
如果你修改了两个文件但是只把其中一个添加到暂存区,那git commit 只会暂存区的这个到仓库,另外一个还是红色名称
-
-
如果git add 一个文件到暂存区之后,但是此时发现提交错误了,注意此时并没有执行git commit的操作
-
git reset <filename>,也就是把暂存区的文件给踢出去了,此时文件名称就会变成红色的
-
回退版本
-
git log 先找到版本号
-
git reset 版本号(要回退的版本号)--hard,不带参数默认是--mixed
-
--hard 参数加与不加的区别
-
--hard:不保存所有变更
-
--soft:保留变更,且变更出于staged
-
--mixed:保留变更且变更内容处于modified
-
此时我们在使用git log 就会发现,比如你第6次提交了,想回到第5次提交的,此时第6次提交的就会消失拉
-
第6次的提交记录消失了,也就是对应的版本号找不到了,那又想回到第6次提交的版本怎么办?
-
此时就使用 git reflog查看所有的操作记录,找到第6次的版本号,再次使用 git reset 版本号 就可以回到第6次的版本
-
-
小知识git log 和 git reflog显示的版本号hash值不一样,其实是一样的,git reflog显示的前七位版本号hash值
-
其实此时想回到最新的版本,直接使用git pull 也是一样的
-
-
-
-
-
文件的4种状态
Untracked:未跟踪的,也就是我们新修改了文件,或者修改py文件里面的代码以后,也就是红色的
Unmodified:git commit 之后就是这个状态
Modified:比如1.txt我之前已经git commit 了,然后再次修改的话就是这个状态
Staged:当我们使用git add 之后,变成绿色的拉,也就是Staged
git pull 和 git fetch的区别
# 1.两者都是从远程仓库拉取代码
# 2.git fetch 和 git merge 来手动解决冲突
git工作流程
分为本地仓库和远程仓库
# Clone:将远程仓库复制到本地
# Push:将本地仓库代码上传到远程仓库
# Pull:将远程仓库代码下载到本地仓库
workspace:工作区,就好比是在pycharm上编写,修改代码
# 1.从远程仓库中clone代码到本地仓库
# 2.从本地仓库中checkout代码然后进行修改
# 3.在提交前先将代码提交到暂存区
# 4.提交到本地仓库,本地仓库中保存修改的各个历史版本
# 5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
# 工作中使用
git add "要提交的代码py文件"
git commit -m "修改了什么,提交到本地仓库的备注信息"
git push -u "分支名称" # 推送到远程仓库
git设置用户名、密码
git config --global user.name "xiaofeiniu"
git config --global user.email "ddd@qq.com"
分支branch
git checkout -b <name><template>
-
参数解释
-
name:新分支的名字
-
template:以哪个分支或者commit为模板,如果这个参数不填,则默认是当前分支为模板
-
-
git branch 列出所有分支
-
高亮显示的且前面带*号的是我们当前所处在的分支
-
-
git checkout master 切换到主分支
git init 初始化git生成git仓库
git status 查看git状态
git add <filename>添文件到暂存区
git add .加入所有文件到暂存区
git commit -m 'message'提交文件到本地仓库
git reset <filename>将尚没有commite之前加入到暂存区的文件重新拉回
文件状态:
1.没有被add过的文件叫untracked
2.add之后文件处于staged状态等待commite
3.commit之后文件处于unmodified这里之所以是modified是因为文件会跟仓库中的文件对比
4.当unmodified的文件被修改则会变为modified状态
5.modified之后的文件add之后将继续变为staged状态
6.unmodifed的文件还有一种可能是已经不再需要了,那么可以remove它不再追踪变为untracked状态
git checkout \<newbranchname> \<refbranch>以参考分支为模板创建新分支
git checkout \<branchname>切换到指定分支
pycharm 操作git
# 1.Path to Git executable:为git的安装路径
# 2.这个url就是在gitLab上clone的url(即:远程仓库的url:端口)如:192.168.15.123:8080...
# 3.这个Diectory 就是本地仓库(本地init的),然后把代码的项目目录,直接复制到这个本地仓库,然后再pycharm里面open打开这个项目
gitlab容器搭建
# 由于是docker镜像运行,所以我们需要把gitLab的配置,数据,日志存到容器外面,即将其挂载到宿主机
# 在srv目录下新建gitLab文件夹,然后在此文件夹下分别常见 configs,logs,data文件夹
# 依次创建三个目录
cd /srv
mkdir gitLab
cd gitLab
mkdir congfigs logs data
# 启动docker安装gitLab
docker run -id -p 443:443 -p 9000:80 -p 8022:22 --hostname 虚拟机的IP --name mygitLab --restart always -v
/srv/gitLab/configs:/etc/gitLab -v
/srv/gitLab/logs:/var/log/gitLab -v
/srv/gitLab/data:/var/opt/gitLab -v
/etc/localtime:/etc/localtime:ro --privileged=true
gitlab/gitlab-ce:13.9.2-ce.0
gitLab 和 jenkins 结合
# jenkins 与gitlab双向认证
# 1.在jenkins的配置需要认证gitlab权限,为了拉取最新的代码
# 2.在gitlab的配置需要认证jenkins权限,为了除非自动化构建操作
# 3.要关注下时区是否正确