MAC上的git配置,配置用户名和用户邮箱,以后每次与Git的交互都会使用该信息。
git config --global user.name "your_name"
git config --global user.email "your_email@gmail.com"
配置信息可以更改,以后想要更改使用上面指令就可以。同时可以使用git config --list
指令查看Git的配置信息。
Git默认是大小写不敏感的,也就是说,将一个文件名某个字母做了大小写转换的修改Git是忽略这个改动的,导致在同步代码时候会出现错误,所以建议大小把Git设置成大小写敏感。
git config core.ignorecase false
生成密钥
Git关联远端仓库时候需要提供公钥,本地保存私钥,每次与远端仓库交互时候,远端仓库会用公钥来验证交互者身份。使用以下指令生成密钥。
ssh-keygen -t rsa -C "your_email@youremail.com"
生成密钥后,在本地的/Users/当前电脑用户/.ssh
目录下会生成两个文件id_rsa
、id_rsa.pub
,id_rsa
文件保存的是私钥,保存于本地,id_rsa.pub
文件保存的是公钥,需要将里面内容上传到远端仓库。
获取公钥字符串具体操作如下图。
图-1 获取公钥
- 输入
cd
指令,进入当前用户目录 - 输入
ls -a
指令,查看当前用户目录下所有文件,包括隐藏文件 - 输入
cd .ssh
指令,进入.ssh
目录 - 输入
ls
指令,查看.ssh
目录下的文件 - 输入
cat id_rsa.pub
指令,查看id_rsa.pub
文件中内容
远端仓库添加密钥
以GitHub为例子,向远端仓库添加公钥,上面已经获取到了公钥,只需要将公钥添加到远端仓库就可以了。
图-1 添加公钥
在个人设置页面,左边选中SSH and GPG keys
,在右边添加公钥,title
是key的名称,可以随便取,可更改,key
是上面我们获取到的公钥,填写完毕后点击add SSH key
按钮,这样远端就添加到了密钥。然后实验操作:本地关联远端仓库
- 在本地文件夹下面执行
git init
指令,初始化文件夹,作为本地的一个仓库。 - 执行
git remote add origin 仓库的ssh链接
- 执行
git pull
指令,将远端代码拉取到本地
执行完毕后,远端仓库代码已经同步到了本地。
简洁图文说明
常用Git指令
-
初始化配置
git config —global user.name “XXX" git config --global user.email “XXXX"
-
设置大小写敏感
git config core.ignorecase false
-
生成密钥
ssh-keygen -t rsa -C “your_email”
-
将远端代码clone到本地目录(如果要是自己创建的仓库,参考上传到github上的Demo操作:将项目Demo上传到Github上的操作步骤_hbblzjy的博客-CSDN博客)
-
(从这里开始,是很很很重要的命令行,要记住!!!)配置完ssh-key,首先 cd 本地文件夹地址(新建一个本地文件夹,最好不要有中文)
-
然后git init(如果此文件夹没有操作过)
-
(git config —global user.name “XXX"
git config --global user.email “XXXX“)如果在之前输入过,这里可要可不要 -
然后git clone <远端git——ssh地址(http地址下载)>
-
这个时候,我们clone下来的是主支master代码,但是有时候我们需要在分支上修改代码、提交。这个时候怎么办?怎么拉取分支的代码?1、首先打开我们clone下来的master代码的文件夹下的终端:cd 代码根目录文件夹地址;2、然后查看分支列表:git branch -l :查看本地分支//git branch -r :查看远程分支//git branch -a :查看全部分支(远程的和本地的)(我一般使用第三个命令),这个时候列表的第一行显示的应该是:* master;3、找到分支名称,执行:git checkout -b 分支名称 origin/分支名称;4、验证,查看分支列表:git branch -a,可以看到第一行显示的是:* 分支名称;5、如果想回来,那么:git checkout master,然后还可以查看分支列表验证;如果还想切换回原来下载过的分支,执行git checkout 分支名称;新的用:git checkout -b 分支名称 origin/分支名称;
-
终端:cd 项目文件夹地址(以下四行命令,是修改代码后需要进行的操作,很重要!!!要记住!!!)
-
先拉取 git pull
-
git add <文件> // 将有修改的文件添加到本地缓存中 git add . 是添加所有修改
git commit -m "本次修改信息" // 提交本次修改,一般是在git add之后操作 -
推送修改的文件:git push
-
(在你保存更改要push的时候,别人有提交,先执行git pull --rebase,修改冲突提交,然后push
如果你更改了还没提交,别人有提交,先git pull,修改冲突提交,然后push,如果出现问题,退出填写提交信息,git log查看你拉取了哪些更新日志,如果日志下面有 : q退出,然后git reset (pull之前本地最新日志对应的代码前六位)--soft/hard,--soft表示保存本地更改,--hard表示不保存本地更改) -
git reset . // 撤销add git rm --cached . // 撤销add
-
切换已经在本地的分支
git checkout <local_branch_name>
-
以当前分支为蓝本新建本地分支并切换到新分支
git checkout -b <new_branch_name>
-
本地没有,然后拉取远端存在的分支,并建立联系
# 一般<new_branch_name>会和<remote_branch_name>保持一致,方便知道本地代码对应远端的哪个代码 git checkout -b <new_branch_name> origin/<remote_branch_name>
-
当前分支合并其他分支
git merge <other_local_branch_name>
-
当前分支合并某个分支(包含当前分支)的一个commit或多个连续的commits
假设有 主支master 和 分支firstTree 两个代码仓库:
提交结果如下:
主支master:提交ID0---提交ID1---提交ID2---提交ID3---提交ID4
分支firstTree:提交ID5---提交ID6---提交ID7
主支master合并分支firstTree某一个commit:
1、先切换到firstTree,然后查看firstTree的提交日志git log,记住想要合并的commit id,比如:提交ID6;
2、再切换到master,然后执行:git cherry-pick 提交ID6
3、此时合并已完成
注意:
如果你cherry-pick的是别人分支的commit id,可能会遇到错误fatal: bad object ...,那是因为
cherry-pick是本地特性,本地要有这个commit id才可以被git cherry-pick。如果没有这个commit id,
就会出现这个错误。所以一定要保证本地有想要合并的分支仓库,且分支仓库包含要合并的commit id,即保证
拉取到最新的分支代码(git pull)。
主支master合并分支firstTree多个连续的commits:(也可以通过多次执行cherry-pick实现,当然这个属于笨方法)
1、同上;
2、基于firstTree创建一个新的分支,并指明新分支的最后一个commit id:
git checkout -b newBranch 提交ID6
3、rebase这个新分支的commit到master(--onto master)
git rebase --onto master 提交ID5^
(提交ID5^:从提交ID5开始)
4、此时master已经合并了 提交ID5到提交ID6 的内容;
-
远端新建分支,其实就是将本地分支推送至远端,所以要先建本地分支,最后与远端建立联系
//不简写命令:这个可以随意定义远端分支的名称 git branch <local_branch_name> //创建新的本地分支 git checkout <local_branch_name> //切换到新建的本地分支 git push origin <local_branch_name>:<remote_branch_name> //以新建的本地分支为蓝本,创建新的远端分支 //本地和远端建立联系 git branch --set-upstream <local_branch_name> origin/<remote_branch_name> //或者 git branch --set-upstream-to=origin/<remote_branch_name> <local_branch_name> //简写命令:这个远端分支的命名都和本地分支名一样 git checkout -b <local_branch_name> //创建新的本地分支,并切换到新建的本地分支 git push --set-upstream origin <local_branch_name> //以新建的本地分支为蓝本,创建新的远端分支,并建立联系
-
删除远端分支,其实就是推送了一个空的分支到远端覆盖了原来的远端分支
git push origin :<remote_branch_name>
-
本地没有,然后拉取远端存在的分支,并建立联系
git checkout -b <local_branch_name> origin/<remote_branch_name> // 或者 git branch —track <local_branch_name> origin/<remote_branch_name>
-
任意的一个本地分支和任意的一个远端分支都可以建立对应关系
git branch --set-upstream <local_branch_name> origin/<remote_branch_name>
-
添加远端库
git remote add <远端库代称> <远端库地址> git clone <远端库地址> <目录> //不需要git init
-
撤销操作
git reflog查看 操作记录, git log查看 提交过的版本信息, 而git reflog可以查看所有分支的操作记录,包含已经被删除的commit记录。 回滚操作,要先理解四个位置:工作区 -- 暂存区 -- 本地仓库 -- 远程仓库 工作区修改代码,提交时先使用 "git add" 提交至暂存区, 再通过 "git commit " 提交至本地仓库,“git pull”拉去远端仓库和本地仓库对比,如果有冲突,解决冲突,然后再重新add,commit,最后才能使用 "git push" 至远程分支. 1: 修改未暂存(git diff 这个命令只检查我们的工作区和暂存区之间的差异) 使用 "git diff" 或者 直接在编辑器看修改部分 2: 已暂存 未提交 使用 "git diff --cached" 能看到暂存区和本地仓库之间的差异 3: 已提交 未推送 使用 "git diff <branch_name> origin/<branch_name>" 能查看本地仓库与远程仓库的更改 撤销修改 1: 修改未暂存 在编辑器里修改了文件,但还没有执行 "git add . " , 可以使用 "git checkout ." 进行回退 2: 暂存未提交 已暂存, 未提交则使用 "git reset --hard" 进行恢复 "git reset --mixed" 用于将本地仓库文件撤回至工作区 3: 已提交未推送 此时已经提交在 本地仓库了,但是未 push 可以使用 "git reset --hard origin/<branch_name>"进行恢复 4: 已提交已推送 先恢复本地仓库,再强制push到远程仓库 4.1 "git reset --hard HEAD^ " (git reset --hard HEAD^ 回退版本信息,在Git中, 用HEAD表示当前版本,上一个版本就是HEAD^, 上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来, 所以写成HEAD~100。) 4.2 "git push -f" (git push -f表示将目前自己本机的代码库推送到远端,并覆盖) 4.3 还有一种笨办法,就是把上次修改的内容全部找到,并删除,重新提交一下,当然这样不好,因为不对的代码最好不要提交。 注意:情况4,一定要保证别人在拉取的时候,你已经推到远端覆盖完成,否则别人会把你提交的错误代码拉取下来并提交,这样你再次提交的时候,就会重新把错误代码拉取到本地 撤销git pull命令 1、运行git reflog命令查看你的历史变更记录; 2、然后用git reset --hard HEAD@{n}/id,(n是你要回退到的引用位置)回退/id是HEAD前面的参数; Git 中的 HEAD 可以理解为一个指针,我们可以在命令行中输入 cat .git/HEAD 查看当前 HEAD 指向哪儿,一般它指向当前工作目录所在分支的最新提交。 当使用 git checkout <branch_name> 切换分支时,HEAD 会移动到指定分支。 但是如果使用的是 git checkout <log id>,即切换到指定的某一次命令,HEAD 就会处于 detached 状态(游离状态)。(退出游离状态:git checkout <branch_name>) HEAD 处于游离状态时,我们可以很方便地在历史版本之间互相切换,比如需要回到某次提交,直接 checkout 对应的 log id 或者 tag 名即可。 它的弊端就是:在这个基础上的提交会新开一个匿名分支!也就是说我们的提交是无法可见保存的,一旦切到别的分支,游离状态以后的提交就不可追溯了。解决办法就是新建一个分支保存游离状态后的提交,然后合并临时分支的代码即可:https://blog.csdn.net/u011240877/article/details/76273335 git reset中 有三个命令(--hard、--soft、 --mixed) git reset --soft xxx : 用于将文件提交至本地仓库后撤回暂存区的操作 git reset --mixed xxx: 用于将本地仓库文件撤回至工作区 git reset --hard xxx: 会将工作区、暂存区、本地仓库的所有提交的文件全都撤销 注意 git reset --hard 会删除工作区文件;更改大的话慎用 git reset --hard/soft <commit_id> // 回滚到某一个提交的版本, git reset --hard/soft HEAD~<num> // 回滚num个提交 git revert <merge_commit_id> -m number // 撤销某一次merge //git reset介绍:https://www.jianshu.com/p/c2ec5f06cf1a
-
强制远端覆盖本地
git fetch --all git reset --hard origin/<remote_branch_name>
-
提交日志查看方式
git log -p 上一次提交具体差异 git log -—stat 最近提交的每个记录中,都有哪些文件被修改,但不显示具体修改 git log -—graph 树形状提交记录,可查看分支合并信息
-
git pull —rebase
有冲突后,解决冲突,使用git add .
然后使用git rebase --continue
-
切换到某个分支,将其他分支的某次提交应用到该分支
git checkout <branch_name> git cherry-pick <commit id>
-
前者表示把到之间(左开右闭,不包含start-commit-id)的提交cherry-pick到当前分支;后者表示把到之间(闭区间,包含start-commit-id)的提交cherry-pick到当前分支。
git cherry-pick <start-commit-id>..<end-commit-id> git cherry-pick <start-commit-id>^..<end-commit-id>
-
tag相关命令
-
新建tag
git tag <tag_name> //轻量标签 git tag -a <tag_name> -m "tag_msg" // 附注标签 git tag -a <tag_name> <commint_id> // 给某次提交添加标签
-
删除tag
git tag -d <tag_name>
-
查看tag
git tag // 查看所有tag git show <tag_name> // 查看某条tag //------查看分支下对应的tag代码 //首先切换到有tag的分支下,然后执行下面的命令 git checkout -b <new_branch_name> <tag_name> // 查看对应tag代码
-
提交到远端
git push origin <tag_name> // 将某个tag提交到远端 git push origin –tags // 将所有tag提交到远端
-
-
branch相关指令
git branch -d <branch_name> // 删除某个分支
git branch -D <branch_name> // 强制删除某个分支
git branch -avv // 查看本地分支与远端分支关系,并且显示分支最新一次提交信息
git remote show origin // 查看远端分支间关系
-
查看当前分支与输入分支不同的地方:git diff 本地分支名(或不填或origin/远端分支名)
-
删除缓存,忽略用户的数据文件:
//查看
*.xcuserdatad
//清除所有文件的缓存
git rm -r --cached .
//再分别执行add、commit、push
UserInterfaceState.xcuserstate && xcschememanagement.plist文件有改动,忽略步骤:
1、打开终端,cd到你的项目文件夹下,然后输入以下命令。
git status
2、查看终端显示UserInterfaceState.xcuserstate && xcschememanagement.plist 文件有改动
3、执行以下命令就可删除忽略文件<xcschememanagement.plist文件操作同理>
git rm --cached XFStoreManage.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate(这里写自己项目中的具体位置,不要直接复制此处)
git commit -m "删除xcuserstate文件"
git push
-
ip变了,git远程仓库的地址也变了,这个时候就要自己手动修改项目连接到的远程仓库地址
输入命令:git remote set-url origin (新的git地址)
-
git fetch相关命令
git fetch
创建并更新本地远程分支。即创建并更新origin/xxx 分支,拉取代码到origin/xxx分支上;
在FETCH_HEAD中设定xxx、origin/xxx对应,需要合并时,git merge就可以将origin/xxx合并到xxx分支上;
git fetch命令通常用来查看其他人的进程,因为它取回的代码对你本地的开发代码没有影响;
git fetch <远程主机名>
将某个远程主机的更新,全部取回本地;
在不指定分支时通常默认为master;
比如:git fetch origin
将远程主机origin的master分支更新到本地;
git fetch <远程主机名> <分支名>
更新远程特定分支;指定远程分支和FETCH_HEAD,并且只拉取该分支的提交;
比如:git fetch origin abc
取回更新后,会返回一个FETCH_HEAD,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:
git log -p FETCH_HEAD
可以看到返回的信息包括更新的文件名,更新的作者和时间,以及更新的代码。我们可以通过这些信息来判断是否产生冲突,以确定是否将更新merge到当前分支。
具体操作步骤:
1、在本地新建一个temp分支,并将远程仓库的master分支下载到本地temp分支;
git fetch origin master:temp
2、比较当前本地分支代码与刚刚从远程下载下来的代码的不同;
git diff temp
3、合并temp分支到当前本地分支;
git merge temp
4、如果不想保留temp分支,删除;
git branch -d/-D temp
与git pull的不同点:
git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到当前本地分支中;
而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决;
git pull 的过程:
1、从远程主机的master分支拉取最新内容;
git fetch origin master
2、将拉取下来的最新内容合并到当前所在的分支中;
git merge FETCH_HEAD
如果需要有选择的合并,git fetch是更好的选择。效果相同时,git pull将更为快捷;
-
git stash 暂存代码,命令操作
暂存功能解决的问题:
常常在操作一个功能时候,又需要改另外一个功能,或者说改个bug。
当前修改部分一时半会的是提交不了的。这个时候想要切换分支是不行的。
切换分支的前提是要么你提交,要么你恢复版本,这两个选择都是不被允许的,也是不合理的。
所以就有了暂存的功能。
具体操作 :
1. git stash:暂存,
如果直接执行此命令,会把上次commit提交的注释作为此次暂存的注释,然后直接切换到上次提交的代码,其实就相当于下面的第一个命令。
// 将修改的所有内容都进行了暂存
git stash save '给暂存加注释,方便知道暂存的是什么'
// 暂存某个文件或某些文件
git stash push 文件地址
// 暂存时,可以先git status,看看都有哪些文件修改了,然后再考虑是暂存所有,还是暂存部分
比如:
(1)暂存某几个个
git stash push (文件地址,直接复制git status展示出来的文件路径) (文件地址,直接复制git status展示出来的文件路径) ...
(2)暂存一个文件夹中的同类型文件
git stash push Classes/LandingView/*.m
// 注意,如果使用push暂存了所有文件,效果和直接使用git stash一样
2. git stash list:查看暂存记录列表
3. 如果需要切换分支,此时就可以切换分支,暂存是可以跨分支取出的
4. git stash apply:应用某个存储,但不会把该存储从列表中删除
git stash apply stash@{0} //表示应用第一个存储(num是数字,从0开始计数,表示存储的序号)
5. git stash pop:应用并删除某个存储
git stash pop stash@{1} //表示应用并删除第二个存储(num是数字,从0开始计数,表示存储的序号)
6. git stash drop:删除某个存储。丢弃stash@{num}存储,从列表中删除这个存储
git stash drop stash@{2} //表示从存储列表中删除第三个存储(num是数字,从0开始计数,表示存储的序号)
7. git stash clear:清空所有暂存的 stash
git stash clear
注意:执行git stash 能正确存储的前提是文件必须在 git 版本控制中。比如:新增了个文件是不能被暂存的
举例:
1.git stash save "save XXXX" (将本地代码回滚至上次提交的时候)
2.git stash list (查看暂存的list)
3.git pull (将远程代码拉下来更新为最新的代码)
4.git stash pop (将第一步的回滚代码释放出来,相当于对本地代码和远程代码进行合并)
5.git add . (正常的添加,提交推送代码到远程)
6.git commit -m "注释"
7.git push
关于 .gitignore 文件:
可以在 .gitignore 文件中添加想要忽略提交的文件,但是在团队开发中可能会出现问题,比如有人在他的电脑
上修改了A文件,因为自己把A文件添加到了 .gitignore 中,当拉取代码时,自己的代码就可能出现冲突或问
题,或者如果自己添加并提交后,其他人后修改A文件,当他提交代码时,就无法提交自己的A文件,但他并不知
道,此时别人拉取代码时,也会出现问题。所以关于忽略文件的添加,一定要慎重考虑,要大家都需要忽略才能添加。
-
其他补充:
1、//查看git上的commit次数
git rev-list HEAD --all --count
2、//用终端命令查看文件列表
ls -a
//删除ds文件
rm .DS_Store
3、git branch -a 查看远程分支,这个时候列表中显示了已经删除过的分支名称,为了删除这些已经删除了的分支,用git fetch -p
4、先git add .
然后git commit -m ‘注释’
然后git pull
如果有冲突,修改冲突,然后再add,commit,push;如果没有直接git push
5、如果合并错误,并且没有执行git push,要返回之前的内容,先查看git log,找到最后一次push的commit之后的值,然后执行q返回,执行git reset --hard e58f11ce464b59ab514ffb4c8d5c1e3eb505dac4(这个是commit后面的值)
6、control + c 可以结束掉终端正在执行的内容
7、po task.response.URL.absoluteString 显示请求的完整接口
8、确保电脑,只连接了目标设备,确保打开了电视盒的adb开关
a.如果连接设备多余1个,执行 adb disconnect
连接电视/机顶盒:
1.电脑和设备必须在同一局域网
2.adb connect 目标设备ip
3.adb devices查看是否连接成功在同一个局域网下,然后安装adb install -r (apk的文件地址)
9、sudo vi /etc/hosts 可以修改内网和外网访问 wq!:强制退出
10、sudo spctl --master-disable 可以打开 设置---安全性和隐私 中的 任何来源 选项
11、显示隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
关闭显示隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
按下这三个键option+command+esc,这时会弹出正在运行的软件进行重启的提示框,选中Finder后点击底部的重新开启按钮,重启Finder。
12、命令:“sudo du -sh * ”查看当前文件夹下各个文件和文件夹占用的空间大小,进而一步步找到占用磁盘空间较多的文件。
13、查看电脑中cocoapods的位置,点击桌面,操作command + shift + g,输入:~/.cocoapods,就可以找到具体位置,可以在此文件中添加依赖的framework文件夹,如果此framework文件夹和远程git仓库关联,需要在此处打开文件夹终端,并和远端git仓库关联即可。
14、解决GitHub打不开、加载慢的问题:https://gitee.com/inChoong/GitHub520#https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Foldj%2FSwitchHosts
2024.1.17新增,git切换到某个提交的相关方法:
2024.08.26新增,git中止某个合并:
2024.08.30新增,遇到review问题:(一般情况下,这个错误的上面有审查代码的链接,将链接发给审查人即可)
2024.11.07新增Untracked files: (use "git add <file>..." to include in what will be committed)的解决办法:
报错解释:
这个报错信息表示在使用git commit命令准备提交更改时,Git发现存在未跟踪(untracked)文件。Git不会自动将这些文件包括在提交中,因为它们并未被添加到版本控制中。
解决方法:
如果这些未跟踪的文件你希望包含在下一次提交中,你需要先使用git add命令将它们添加到暂存区,然后再提交。例如:
git add <file>
git commit -m "Your commit message"
其中<file>是你希望添加的文件名。
如果这些未跟踪的文件你不希望包含在下一次提交中,你可以使用以下命令忽略它们:
git clean -f
这将清理未跟踪的文件,但不会影响其他如配置文件等。
如果你想同时清理未跟踪的文件和未跟踪的目录,可以使用:
git clean -fd (注意,这个命令会把所有空文件夹或者0字节的目录都清理掉)
如果你还想删除已经跟踪但被.gitignore忽略的文件,可以使用:
git clean -fX
执行上述这几个命令的时候,就会直接帮你删除掉这些文件。可能会让你触不及防,如果删了你不想删的文件/目录还会让你后悔莫及。
所以,建议在执行上述命令之前,先执行上述命令的查看命令(加上 -n 参数),查看该命令会删除哪些文件:
git clean -nf
git clean -nfd
git clean -nfx
执行加了 -n 参数的命令,会列出该命令会删除的文件,但不会删除文件;确认无误后再执行对应的 git clean -f/fd/fx 命令。
如果你想要的是将所有的更改(包括未跟踪的文件和已跟踪但已删除的文件)提交,你可以使用:
git add .
git commit -a -m "Your commit message"
这里的git add .会添加当前目录及子目录下所有的更改,包括新的文件和修改过的文件,并且git commit -a会提交这些更改,但不会包括未跟踪的文件。
2024.11.07新增: Git 对 LFS((Large File Storage)大文件库)的使用
Git LFS:(Large File Storage)把音乐、图片、视频等指定的任意文件存在 Git 仓库之外,而在 Git 仓库中用一个占用空间 1KB 不到的文本指针来代替文件的存在,通过把大文件存储在 Git 仓库之外,可以减小 Git 仓库本身的体积,使克隆 Git 仓库的速度加快,也使得 Git 不会因为仓库中充满大文件而损失性能;
GitHub中 Git LFS 文档:https://docs.github.com/zh/repositories/working-with-files/managing-large-files/about-git-large-file-storage
(1)打开终端,cd 到 代码 目录
(2)下载lfs:终端输入:brew install git-lfs
(3)让仓库支持LFS:终端输入: git lfs install
当出现:
Updated pre-push hook.
Git LFS initialized.
表明安装成功;
Sourcetree可能会提示两个命令,需要选择一个执行:
# 命令一:手动更新,此命令会显示需要添加的内容,这些内容需要添加到:.git/hooks/pre-push 文件中,
# pre-push执行文件的编辑:在终端窗口,输入:vim + pre-push文件地址(拖拽直接生成),
# 然后点击:i 键进行编辑,将刚才终端上输出的信息添加到pre-push中,然后点击: esc 键,输入: :q 退出,此配置已完成
git lfs update --manual
# 命令二:强制更新,不需要手动处理
git lfs update --force
结束语
本篇粗略的介绍了Git的使用,但是对于Git内部的实现和一些具体的使用方法,还是需要自己去深入的了解。关于Git的详细介绍和工作原理,可以查看以下连篇文章。
Git教程,里面有介绍到Git的工作原理,可以仔细阅读。
Git Community Book 中文版介绍了Git具体使用,这本书也是关于Git的一本好书。
Git练习,实战练习Git的各种指令。