1.Git官网
https://git-scm.com/
https://git-scm.com/book/zh/v2
https://git-scm.com/book/zh/v1/Git-基础-打标签
2.GitLab-CE安装
https://packages.gitlab.com/gitlab/gitlab-ce
参看地址
https://www.cnblogs.com/wenwei-blog/p/5861450.html
https://www.cnblogs.com/straycats/p/7637373.html
https://www.jianshu.com/p/2400d9e57fd1
gitlab汉化包
https://gitlab.com/xhang/gitlab
gitlab取消用户验证
备份/opt/gitlab/embedded/service/目录,进入service目录的子目录gitlab-rails/app/models中修改user.rb文件,将此文件devise中的confirmable删除,然后在进入service目录的子目录gitlab-rails/app/views/devise/shared/中修改_signup_box.html.haml文件,将此文件中的末尾四行删除即含有new_confirmable_path的块,重新加载配置gitlab-ctl reconfigure,重启服务即可gitlab-ctl restart
GitLab备份与还原过程中的权限问题
https://www.jianshu.com/p/68a39c7193e7
gitlab基本维护和使用
https://www.cnblogs.com/voipman/p/gitlab.html
Gitlab - 如何恢复用户注册与登陆
配置gitlab时,不小心将用户注册\登陆功能禁掉了,页面变成了No authentication methods configured,gitlab版本
11.3.4,解决方法:
gitlab-psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
update application_settings set password_authentication_enabled_for_web='t';
\q
gitlab-ctl restart
访问GitLab的PostgreSQL数据库
https://www.cnblogs.com/UniqueColor/p/7767012.html
https://www.cnblogs.com/sfnz/p/7131287.html?utm_source=itdadao&utm_medium=referral
http://www.postgres.cn/docs/9.3/
如何使用git配置账号密码
https://blog.csdn.net/maomao1983zy/article/details/132752206
https://segmentfault.com/a/1190000040113454
使用控制台实时查看logs
http://hai0378.iteye.com/blog/2366869
Nginx配置反向代理访问 Gitlab
简介
gitlab 作为当前企业版本控制的有力工具,非常流行,官方提供了非常方便的安装配置方式,能让我们快速的搭建一个便捷的代码版本控制系统。
但是因为 gitlab 本身内置了 nginx,当我们的 gitlab 服务要和其他 web服务共存,就需要做一点简单的改变,以适应这种情况
第一个办法是禁用 gitlab 自带的 nginx,使用我们自己安装的 nginx,这种方法我不喜欢。
第二种办法就是 配置代理服务器,继续使用 gitlab 的内置 nginx
修改 gitlab 配置(官方安装方式下,配置文件是/etc/gitlab/gitlab.rb
-
gitlab nginx 端口监听修改
nginx['listen_port'] = 端口号 -
gitlab 的域名
external_url '域名'
修改完上述参数 执行命令 gitlab-ctrl reconfigure
添加 nginx 代理服务器配置
upstream git{
# 域名对应 gitlab配置中的 external_url
# 端口对应 gitlab 配置中的 nginx['listen_port']
server 域名:端口;
}
server{
listen 80;
# 此域名是提供给最终用户的访问地址
server_name 域名;
location / {
# 这个大小的设置非常重要,如果 git 版本库里面有大文件,设置的太小,文件push 会失败,根据情况调整
client_max_body_size 50m;
proxy_redirect off;
#以下确保 gitlab中项目的 url 是域名而不是 http://git,不可缺少
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 反向代理到 gitlab 内置的 nginx
proxy_pass http://git;
index index.html index.htm;
}
}
server 域名:端口;
可以改为:
端口对应 gitlab 配置中的 nginx['listen_port']
server IP:端口;
下面的配置也跟着改一下就行了
在线代码托管的仓库
https://github.com/
https://gitee.com/
git clone 使用以及记住用户名和密码的方法
git clone http://邮箱(或用户名):密码@仓库
示例:
-
邮箱 test@qq.com -
密码: test -
仓库: http://git.test.com/abc/demo -
注意: 邮箱中的 @ 要使用 %40 代替。仓库 URL 不需要 http:// 。
命令:
git clone http://test%40qq.com:test@git.test.com/abc/demo
拉取指定分支的内容
git clone -b 分支 http://xw%40qq.com:xw@git.test.com/abc/demo
此方法会将用户名和密码写入当前项目.git目录下的config文件中。
开发与OP流程规范(git)
https://www.cnblogs.com/aylin/p/6042653.html
更换git远程地址
git remote remove origin
git remote add origin <新的地址>
git remote -v 检查一下配置的远程仓库地址
创建分支
git checkout -b feature_v
git push origin feature_v
git push --set-upstream origin feature_v
1、查看本地分支 : git branch
前面带有*号的是当前分支
2 、删除本地已合并的分支: git branch -d [branchname] 某些情况下可以用 git branch -D [branchName] (使用时应注意是否已合并)
提示删除了一个名为list的本地分支
3、删除远程分支: git push origin --delete [branchname]
提示删除了一个名为 201804019-test-files 的分支,
注意: 在删除远程分支时,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支
如果发生以下错误:
error: unable to delete ‘origin/xxxxxxxx-fixbug’: remote ref does not exist
error: failed to push some refs to ‘git@github.com:xxxxxxxx/xxxxxxxxxx.git’
解决办法: git checkout xxxxx-fixbug 切换到当前分支上, 然后再 进行 git push --delete origin origin/xxxxx-fixbug
此时将不会再发生错误 。
4、创建分支 :git branch [branchname]
需要注意,创建分支时,不会有什么提示。
5、 查看全部分支(包含本地和远程) :git branch -a
6、根据指定版本号创建分支: git checkout -b branchName commitId
7、清理本地无效分支(远程已删除本地没删除的分支): git fetch -p
8、如果分支太多,还可以用此命令进行分支模糊查找: git branch | grep 'branchName'
git tag 标签简介
1、git tag --list 列出所有的标签
2、git tag <your_tag_name> 创建一个标签
3、git tag -a <your_tag_name> -m ‘your_tag_description’ 创建一个带有注释的标签
4、git show <your_tag_name> 查看标签信息
5、git ls-remote --tags origin 查看所有的远程标签及commit ID
6、git tag -d <your_tag_name> 删除一个标签
7、git push --delete origin <your_tag_name> 删除远程仓库的标签
8、git push origin <your_tag_name> 推送一个标签到远程
9、git push origin --tags 推送多个本地标签到远程
删除远程标签时遇到的问题
起因: 由于每次上线都会打一个标签,因此标签库存在多个标签。想要删除全部的无效标签。 结果执行完毕删除远程标签和删除本地标签后。 发现其他同事再次推送的时候, 删除的那些标签又莫名其妙的回来了。
原因: 这是因为其他同事的本地标签没有清理,这时候就必须要其他同事全部都要清理本地的标签。 (很显然这行不通,很难。)
解决办法:
使用 git tag -l | xargs -n 1 git push --delete origin 命令一条一条的删除远程仓库.
然后再用 git tag -l | xargs git tag -d 清理本地仓库。 (此方法楼主已经测试并且可用) 。
批量删除本地分支脚本:batch_delete_local_branch.bash
# 删除本地分支
for branch in $(git branch -vv | grep ': gone]' | awk '{print$1}'); do
# 删除每个本地分支
git branch -d $branch
done
git 切换远程仓库地址
1、切换远程仓库地址:
方式一:修改远程仓库地址
【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。
方式二:先删除远程仓库地址,然后再添加
【git remote rm origin】 删除现有远程仓库
【git remote add origin url】添加新远程仓库
2、【git remote -v 】查看远程仓库的地址
通过命令直接修改远程仓库地址
git remote 查看所有远程仓库
git remote xxx 查看指定远程仓库地址
git remote set-url origin 你新的远程仓库地址
先删除在添加你的远程仓库
git remote rm origin
git remote add origin 你的新远程仓库地址
git add 添加 多余文件 这样的错误是由于, 有的时候 可能
git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件
git add 如果添加了错误的文件的话
撤销操作
git status 先看一下add 中的文件 git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了
今天在拿到新的iMac开发机器的时候直接使用旧笔记本copy过来的代码,提示帐号密码有问题.找了很多方法都不太管用.
分别打开下面2个文件,将[User]部分完全删除后保存,再使用Git命令的时候就会提示输入帐号密码了.
$ vi .git/config (工程当前路径的Git配置文件)
$ vi ~/.gitconfig (全局的Git配置文件)
应用程序-实用工具-双击钥匙串-右上角搜索github-右击选项删除
Git操作之 git add 撤销、git commit 撤销
https://blog.csdn.net/w958796636/article/details/53611133
https://blog.csdn.net/Bynine9/article/details/125798625
1、git add 添加多余文件 撤销操作
git reset HEAD 后面什么都不跟的,就是上一次add 里面的内容全部撤销
git reset HEAD XXX 后面跟文件名,就是对某个文件进行撤销
2、git commit 撤销操作
git reset --soft HEAD^
这样就成功的撤销了commit操作
注意,仅仅是撤回commit操作,您写的代码仍然保留。
git reset 其他参数说明:
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
Git操作:查看所有分支的提交修改
解决方案:git log --graph --all
如果要再简化观看流程,可以再加上--oneline属性,一个commit只显示一行。所以最终的形式为:git log --graph --all --oneline
git图示所有分支的 历史
https://www.cnblogs.com/chucklu/p/4748394.html
git 如何查看远程分支创建时间
git reflog show --date=iso test_branch
http://www.zztongyun.com/article/git%20%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF%E5%88%9B%E5%BB%BA%E6%97%B6%E9%97%B4
git查看全部分支的命令:git branch -avv
一个小时学会Git ****
https://www.cnblogs.com/best/p/7474442.html#_label3_3_3_2
https://www.cnblogs.com/ludashi/p/8093145.html
git
https://www.cnblogs.com/bescheiden/articles/11126319.html
https://www.cnblogs.com/change-oneself/p/10242879.html
https://www.cnblogs.com/hukuangjie/p/11369434.html
https://www.cnblogs.com/tochw/p/12942036.html
https://blog.csdn.net/weixin_37697277/article/details/80250879
GitLab下载源码的两种方式(https/ssh-key)
https://blog.csdn.net/sinat_34715587/article/details/94397533
拉取指定tag的项目
git clone --branch [tags标签] [git地址]
git clone -b v5.2.0 --depth=1 http://gitlab地址
-b 后面写上指定 版本标签 , 即 tag, 比如 v5.2.0
--depth 表示克隆深度, 1 表示只克隆最新的版本. 因为如果项目迭代的版本很多, 克隆会很慢
因为 tag 相当于是一个快照,是不能更改它的代码的。
如果要在 tag 代码的基础上做修改,你需要一个分支:
git checkout -b branch_name tag_name
这样会从 tag 创建一个分支,然后就和普通的 git 操作一样了。
git拉取指定commit
方法:先拷贝代码,再切换
1、先拉取
git clone https://github.com/tianqixin/runoob-git-test
2、切换分支,直接就切换到之前提交过的代码
(dev 是分支名 , 2342dsfsdfs2 是提交过的 commit 的id)
git checkout -b dev 2342dsfsdfs2
** 查看commit 的 id
git log //查看全部提交记录
git log -p -2 //查看最近两次提交记录
git将指定的commit合并到指定的分支
1. 将指定的commit合并到当前分支
git cherry-pick commit_id
git checout master
git cherry-pick 1873e52 (如果没有冲突,将成功合并)
git push origin master
2. 合并多个连续 commit 到指定分支
假设需要合并 devlop 上从 fb407a3f 到 92d2a449 的 commmit 合并到 master 分支
a. 基于 devlop 分支的 92d2a449 commit 创建一个新分支
git checkout -b new_branch_name 92d2a449
b. 将指定 commit 之后的提交记录合并到指定分支(此处为master)
git rebase --ontomaster 92d2a449^
3. 将本地的 commit 推送到其他分支
git push origin branchA:branchB
https://blog.csdn.net/huyongfu2004/article/details/122239102
https://zhuanlan.zhihu.com/p/357770707
https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
Git 开发必备 .gitignore 详解
https://blog.csdn.net/nyist_zxp/article/details/119887324
Git回滚
https://blog.51cto.com/u_15881945/5866266
https://blog.csdn.net/paradoxzl/article/details/125186270
Git合并某次提交
https://blog.csdn.net/wangxiaozhonga/article/details/127551603
git创建/删除本地branch(分支),tag(标签)
https://blog.csdn.net/u013992330/article/details/86539767
Git之拉取指定tag版本/切换指定tag代码
https://blog.csdn.net/lovedingd/article/details/127568704
Git分支修改名字
1、本地分支重命名
git branch -m oldName newName
2、将重命名后的分支推送到远程
git push origin newName
3、删除远程的旧分支
git push --delete origin oldName
显示如下,说明删除成功
To http://11.11.11.11/demo/demo.git - [deleted] oleName
Git 应用场景记录
git 撤销提交到远程服务器上的合并不生成新的提交记录
1.我新建了一个开发分支,feature/aaa;
2.提交了几次代码;
3.合并到了develop分支上,测试环境已经运行;
4.现在这个分支废弃了;
5.想删除develop上合并这个分支的所有提交记录并且不产生新的记录;
6.以下方式解决,前提是develop只有这个分支合并的代码,不存在其他分支合并的代码
A)本地切换到develop分支;
B)git log 找到合并feature/aaa分支之前最后一次提交记录,记下commit号,例如:b95269392465ded216b2715757e1aa291ee5e12b;
C)执行 git reset --hard b95269392465ded216b2715757e1aa291ee5e12b 命令,恢复到这次提交
D)执行 git push -f origin develop 强制更新远程相应的分支,不强制不能更新,因为远程比本地的新;
E)测试环境服务器上找到相应的代码目录切换到develop分支,执行 git reset --hard b95269392465ded216b2715757e1aa291ee5e12b 即可。
参考链接
https://blog.csdn.net/a1139628523/article/details/128906360
https://betheme.net/a/21414242.html?action=onClick
https://deepinout.com/git/git-questions/296_git_git_how_to_undo_a_merge.html
https://blog.csdn.net/Connie1451/article/details/131470961
https://blog.csdn.net/qq_40813329/article/details/122985896
https://blog.csdn.net/cxu123321/article/details/97894090
git把某个开发分支误合并到master分支怎么处理
TortoiseGit代码回滚-----https://blog.csdn.net/calmreason/article/details/119208525
使用网易企业免费邮后应如何设置站点的smtp
免费企业邮支持POP3/SMTP服务,您可以通过电脑客户端软件更好地收发邮件,服务器地址:
POP3:pop.ym.163.com 默认端口为:110
SMTP:smtp.ym.163.com 默认端口为:25
SMTP服务器地址写:smtp.ym.163.com
SMTP用户名:邮箱@abc.com
SMTP登录密码:mima
域名:写ym.163.com 或者你的mail.abc.com 试试
pop.ym.163.com
smtp.ym.163.com
http://www.postfix.org/INSTALL.html
https://www.cnblogs.com/alex-note/p/6840160.html
http://linux.vbird.org/linux_server/0380mail.php
https://blog.csdn.net/wh211212/article/details/53040620
浙公网安备 33010602011771号