执行下面代码即可:
git config --global --add safe.directory *
执行下面代码即可:
git config --global --add safe.directory *
转载自:git拉取指定目录
仓库只有一个的情况下,只想拉取某个目录文件;其他文件没用到的会很浪费时间;
关键:git的sparse checkout模式
大致步骤:
1,本地新建文件夹或者执行命令
mkdir newproject && cd newproject
2,目录初始化
git init
3,设置远程仓库地址
git remote add -f origin <origin_url>
4,设置sparse checkout模式,允许克隆子目录
git config core.sparsecheckout true
5,设置指定拉取的目录( *是通配符,!是反选;例如 clients/* 表示clients目录下所有)
echo clients/html >> .git/info/sparse-checkout
6,拉取
git pull origin master
第6步如果遇到 fatal: Couldn’t find remote ref master;
表示主线名称不是master,可以通过分支命令查看git branch -a
git branch -a remotes/origin/main
根据上面提示,主线名称是main,则执行
git pull origin main
节选自:git用ssh方式下载和提交代码
1、运行Git Bash客户端,执行ls ~/.ssh; 如果列出下图这两个rsa文件,那应该就不需要配置ssh key了,如果不放心就将这几个文件删掉,重新生成。
2、生成ssh key文件
ssh-keygen -t rsa -C "xxx.xxx.com"
-t 指定密钥类型,默认是 rsa ,可以省略
-C 设置注释文字,比如git的地址。
-f 指定密钥文件存储文件名,我们省略了命令执行的时候会让你选择文件名,直接回车就会保存在默认的位置。
然后会让你输入两次密码,最后出现 key fingerprint和 key’s randomart 就表示创建成功了。
ssh-keygen -t ed25519 -C "your_email@example.com"
节选自:svn 迁移至git操作手册
项目交付、版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等。git自带了从svn迁移至git的工具命令,可很好的对svn上的提交历史做迁移和映射,操作简单方便。但是初次接触不熟练,这里做一个总结和记录,内容尽量简单化。争取提供给刚刚接触git和准备迁移的用户一个简单易懂的方案。
迁移流程图:
这里分为两步来说明,第一步是比较简单迁移要件准备,已经准备好的用户可直接略过,直接进入第二步进行迁移操作。 继续阅读【转】svn 迁移至git操作手册
今天(2017.02.27)TortoiseGit 2.4.0
发布了一个Hotfix
来修正几个BUG
,网站上的具体的版本信息如下:
2017-02-25 | Released TortoiseGit Hotfix 2.4.0.2 (fixes issue #2909 (Commit dialog unclosable) and issue #2911 (Add returns “invalid path”) and contains PuTTY 0.68)
但是这次的修复引入了更大的BUG
,导致无法提交代码,不管是拉取还是提交代码,都会提示”fatal: protocol error: bad line length character: Welc
“,如下图:
修复这个问题最简单的方法就是还原到TortoiseGit 2.4.0
版本。
这个BUG
是由TortoiseGitPlink.exe
里面的代码改动引起的,只要还原这个文件到0.67版本(来自TortoiseGit 2.4.0
),也可以解决这个问题。
目前已经提交了BUG
给开发人员了。对于的BUG
链接地址如下:
TortoiseGit 2.4.0.2 bug ( TortoiseGit 2.4.0 works but TortoiseGit 2.4.0.2 can not pull and push) “fatal: protocol error: bad line length character: Welc”
希望能尽快修复这个问题吧!
到目前为止(2017.05.09)这个问题依旧没有修复的可能,因此建议大家可以改用一下SourceTree-2.0.20.1
,可以点击这里下载目前最新的版本。
PS:可以直接点击这里下载0.67版本的plink.exe。
PPS:SourceTree高版本也有这个问题,解决方案是一样的。(最终笔者还是换成了OpenSSH。)
转载自:Git LFS的使用
还没使用git之前,二进制文件和源代码分成两块,分别存放到不同的svn仓库上(防止二进制文件中有病毒感染服务器,所以做了这种隔离)。
现在公司已经切换到git上进行版本管理了,那么就可以使用git lfs来管理这些二进制文件,这样就可以让源码和二进制文件和谐共存于一处,从而不像以前那样,需要分别做两次更新。
LFS其实是git的一个扩展,并没有改变git的工作方式,有点像耍了个小花招,把指定需要lfs管理的文件替换成了一个指针文件交给git进行版本管理;
在pull/push等这些操作中,lfs又通过lfs服务器把这些文件的真身给下载或上传回来;
通过这样的手段,使得本地仓库的体积大大减小,而不会出现随着这些文件的版本增多而体积剧烈膨胀的情况;
个人觉得这种把存储负担转移给了服务器的做法,是不是有违git去中心化的理念,毕竟lfs这样做其实算是强依赖于这个lfs服务器了,本地仓库并不是一个完整的仓库 继续阅读【转】Git LFS的使用
节选自:Git如何修改已经push到远程仓库的历史commit信息?
git log
git rebase -i HEAD~3
edit 1bf6b28 init
pick 01d49ca 优化开发环境数据库目录
pick 9709bde iview 3.0 & use shortId
pick 03b3355 collection
git commit --amend git commit --amend -s
git rebase --continue
git push origin master
转载自:windows 安装sourceTree3.3.8 install 时无反应,如何跳过注册安装
我的电脑是windows7, sourceTree是3.3.8
1、访问官网下载最新版本的sourceTree ,官网连接:
https://www.sourcetreeapp.com/
2、先安装sourceTree, 他会提示缺少.NET Framework 4.7.1, 少什么就安装什么,安装成功后, 需要重启电脑,然后执行步骤3; 如果没有缺少,请忽略,直接执行步骤3
3、选择bitbucket的界面退出
4、打开我的电脑, 在地址栏, 输入
%LocalAppData%\Atlassian\SourceTree\
5、在此目录下新建名为accounts.json文件, 写入以下内容
[ { "$id": "1", "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity", "Authenticate": true, "HostInstance": { "$id": "2", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount", "Host": { "$id": "3", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount", "Id": "atlassian account" }, "BaseUrl": "https://id.atlassian.com/" }, "Credentials": { "$id": "4", "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account", "Username": "", "Email": null }, "IsDefault": false } ]
6、打开 %LocalAppData%\Atlassian,进入“SourceTree.exe_Url_iayhtc13zv3obzuz5vchezjs1az2q5ef”(注:该目录可能和版本相关,不同版本的路径可能不完全一样。)
进入 3.3.8.3848 目录, 打开user.config 加入这几句话
<setting name="AgreedToEULA" serializeAs="String"> <value>True</value> </setting> <setting name="AgreedToEULAVersion" serializeAs="String"> <value>20160201</value> </setting>
7、重新点击seourceTree.exe 安装, 弹框选择最后一项安装即可
忽略跟踪:
git update-index --assume-unchanged /path/to/file
恢复跟踪:
git update-index --no-assume-unchanged /path/to/file
查看已忽略的文件列表:
git ls-files -v | findstr /B ^h (Windows)
git ls-files -v | grep '^h' (Mac)
关闭core.autocrlf:
git config --global core.autocrlf false