Git环境搭建
为什么要用 Git
- 可能代码会写错 ==> Git可回退到之前版本
- 需求会变 ==> Git可保存多个版本
使用
安装git
下载地址:
https://git-for-windows.github.io/
https://tortoisegit.org/download/
下载如下软件,直接下一步执行即可
// 基础环境
Git-2.11.1-64-bit.exe
// 可视化管理工具
TortoiseGit-1.8.14.0_64bit.1436148947.exe
// 可视化管理工具汉化(可选)
TortoiseGit-LanguagePack-2.2.0.0-64bit-zh_CN.exe
界面操作
汉化
点击关于,访问官网,下载,下载对应的语言包,并安装
PS: 在设置页面中,选择语言下拉菜单,只有英文,不知道是为什么。
命令行配置git
对于想装逼的,可以装这个。
step1: 配置用户信息
这里只需要配置一次即可:
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
step2: 创建仓库
cd: 改变当前文件路径
格式: cd 目录,例如: cd /d/
【注意】 命令之间有空格的
// 用于在当前文件夹下,创建一个新的仓库
git init
step3: 添加项目文件
-
在文件夹 右键,选择 TortoiseGit/add, 代表将文件添加进去
-
提交到项目中, 右键 选择 “Git Commit …”
【小技巧】 打出几个首字母之后,按 TAB 键 可以自动补全
windows 命令介绍
pwd:查看当前文件路径
/c/Users/Administrtor
系统下面的 c盘 下的 Users 文件夹下的 Administrator 文件夹
cd: 改变当前文件路径
cd /d/
【注意】 命令之间有空格的
github
注册账号,新建仓库后,克隆
参考资料
TortoiseGit安装与配置
http://blog.csdn.net/renfufei/article/details/41647937
常用命令
当我想从远程仓库里拉取一条本地不存在的分支时:
git checkout -b 本地分支名 origin/远程分支名 // 保存当前未提交的文件 git stash save // 提取上次保存的文件 git stash pop // 移除仓库中的大文件 git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch gf-manager/node_modules' --tag-name-filter cat -- --all git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch gf-manager/dist' --tag-name-filter cat -- --all
git config --global user.name "anancar" git config --global user.email "616651001@qq.com"
操作资料
Git上手:使用Tortoisegit操作Git
https://www.cnblogs.com/Sroot/p/8963411.html
廖雪峰-Git教程
https://www.liaoxuefeng.com/wiki/896043488029600
寻找并删除Git记录中的大文件
https://harttle.land/2016/03/22/purge-large-files-in-gitrepo.html
Git撤销&回滚操作
https://blog.csdn.net/ligang2585116/article/details/71094887
使用事项
1. 不要提交无关文件
2. 不要提交过大的文件
Gitblit 服务器仓库使用
位置配置
然后编辑E:\Git_lib\data\defaults.properties 文件
#Git仓库的文件路径 git.repositoriesFolder = E:\Git_lib\GitRepository #HTTP协议使用的端口号 server.httpPort = xxxport #HTTPS协议使用的端口号, Tomcat的HTTPS默认使用的是8443端口 server.httpsPort = xxxport
Linux 下搭建gitlab
https://blog.csdn.net/u011241606/article/details/51471367
gitlab
Centos6.5 成功安装 gitblit
https://blog.csdn.net/weixin_38628533/article/details/80415497
启动命令
service gitblit start
常用命令
忽略已入库的文件修改 git update-index --assume-unchanged .emacs 取消忽略已入库的文件修改 git update-index --no-assume-unchanged
window server 2012 搭建git服务器
参考资料
https://blog.csdn.net/u011781521/article/details/78337632
gitlib 可以在 csdn 上下载,速度比较快。
Cannot assign requested address: bind
【解决办法】注意设置的地址,一定要使用内网地址来绑定
推送失败,采用 sourcetree 工具
选择 http:// 对应的链接
【后期扩展】 webhook 自动更新代码
需要用到 groovy
https://www.jianshu.com/p/97eff04df358
git合并分支时如何忽略某些文件不合并(保持原样)
在项目文件夹下,新建文件
.gitattributes
内容如下:
apps\xxxx.class.php xxxx.php
git bash 执行
git config merge.ours.driver true
https://bbs.csdn.net/topics/391838872
fatal: refusing to merge unrelated histories
因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,
这句代码是在git 2.9.2版本发生的,最新的版本需要添加--allow-unrelated-histories
git pull origin master --allow-unrelated-histories
在Linux下搭建git服务器
// 创建一个git用户并赋予密码 useradd git passwd git // 创建仓库 cd /home/git git init --bare repo.git // 修改仓库的所有者 chown git:git repo.git // 克隆 服务器 仓库文件。会按照要求输入用户名和密码 git clone git@ip:/home/git/repo.git
【特别注意】 clone时不能用绝对路径,只能写相对于git用户home的相对路径
错误:git@ip:gitosis-admin.git
正确:git@ip:/home/git/repositories/gitosis-admin.git
否则,容易出现如下错误:
https://blog.csdn.net/xyw591238/article/details/52806959 fatal: '/path/repo.git' does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights fatal: does not appear to be a git repository Could not read from remote repository.
问题及解决
git 提交 遇到 unpack failed: error Missing commit
https://segmentfault.com/q/1010000003036343
文中提到的方案并没有解决问题。实际采用的办法是,拷贝出来修改的文件,然后重新克隆项目,将修改的文件替换过去,再重新提交推送
设定git大小写敏感
<code>git config core.ignorecase false</code>
删掉之前的大小写错误文件或文件夹
需要重命名提交,改回来,再提交
https://www.jianshu.com/p/df0b0e8bcf9b
Gitlab 仓库管理
新闻,支持 release 发布栏目管理
https://baijiahao.baidu.com/s?id=1623623765490509546&wfr=spider&for=pc
Git 在团队中的最佳实践--如何正确使用Git Flow
https://www.cnblogs.com/cnblogsfans/p/5075073.html
用分支来设定:例如 release-0.0.1,然后在这个分支上,添加release目录,能够添加编译好的文件即可。
主页应用
可以用来制作个人主页
常用软件
sourcetree
https://www.sourcetreeapp.com/
注册bitbucket 账号,然后授权登录即可。
更改git的仓库地址
方法一:
git remote rm origin
git remote add origin git@github.com:Liutos/foobar.git
方法二:
git remote origin set-url <URL>
把<URL>替换成新的url地址。
方法三:
直接修改.git/config文件
---------------------
原文:https://blog.csdn.net/hahahhahahahha123456/article/details/81328244
撤销分支上的提交
reset hard
https://cloud.tencent.com/developer/ask/49500
希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull [https://www.cnblogs.com/wihainan/p/6010895.html https://www.cnblogs.com/wihainan/p/6010895.html
码云使用文档
完整文档
如何注册
创建项目 (章节后半部分中采用命令行提交的方式可不看,因为可采用 “乌龟”的界面进行操作)
TortoiseGit安装和使用的图文教程
https://blog.csdn.net/qq_14918243/article/details/61919041
廖雪峰的Git教程
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
Tortoisegit图文使用教程
https://www.cnblogs.com/maojunyi/p/7735723.html
代码仓库
Gitblit 服务器仓库使用
位置配置
然后编辑E:\Git_lib\data\defaults.properties 文件
#Git仓库的文件路径 git.repositoriesFolder = E:\Git_lib\GitRepository #HTTP协议使用的端口号 server.httpPort = 1010 #HTTPS协议使用的端口号, Tomcat的HTTPS默认使用的是8443端口 server.httpsPort = 8443
Linux 下搭建gitlab
https://blog.csdn.net/u011241606/article/details/51471367
Centos6.5 成功安装 gitblit
https://blog.csdn.net/weixin_38628533/article/details/80415497
启动命令
service gitblit start
<parsererror style="display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em; margin: 1em; color: black">
This page contains the following errors:
Below is a rendering of the page up to the first error.
</parsererror>
Ubuntu 16.04 安装 giblit
下载安装文件在csdn上下载比较快。目前本地是有成功运行的文件的
端口编辑 E:\Git_lib\data\defaults.properties 文件
#Git仓库的文件路径 git.repositoriesFolder = E:\Git_lib\GitRepository #HTTP协议使用的端口号 server.httpPort = 1010 #HTTPS协议使用的端口号, Tomcat的HTTPS默认使用的是8443端口 server.httpsPort = 8443
yum install -y cronolog
启动gitblit脚本
start.sh
#!/bin/bash SRC="/path/gitblit-1.8.0" cd ${SRC} echo "running gitblit server ...." nohup java -Xmx512m -Xms512m -Xmn185m -Xss256k -jar gitblit.jar --baseFolder data 2>&1 | cronolog log.%Y-%m-%d.out >> /dev/null & echo "running gitblit server finish" java -Xmx512m -Xms512m -Xmn185m -Xss256k -jar /home/tools/gitblit-1.8.0/gitblit.jar --baseFolder /home/tools/gitblit-1.8.0/data
stop.sh
#!/bin/sh process=`ps -fe|grep "gitblit.jar" |grep -ivE "grep|cron" |awk '{print $2}'` if [ !$process ]; then echo "stop gitblit process $process ....." kill -9 $process sleep 1 else echo "gitblit is already stop!" fi