在阐述Git命令行之前,首先来看下面的一张图:
Snip20210827_232.png
常见命令
-
git clone https://github.com/Liyanyan33/YYArrayLib YYArrayLib
:从远程仓库中克隆工程到本地当前文件目录YYArrayLib中; -
git status
:查看本地文件的状态; -
git add .
:将本地所有修改的文件添加到暂存区; -
git commit -m '提交说明'
:将暂存区的修改文件提交到本地仓库; -
git push
:将本地仓库中修改文件提交到远程仓库; -
git pull
:从远程仓库拉取代码到本地仓库,实现远程仓库与本地仓库的同步; -
git branch
:查看远程仓库的分支列表;
SourceTree设置iOS工程的忽略文件
*~
.DS_Store
UserInterfaceState.xcuserstate
xcschememanagement.plist
Pods
Podfile.lock
Breakpoints_v2.xcbkptlist
.gitignore
contents.xcworkspacedata
IDEWorkspaceChecks.plist
WorkspaceSettings.xcsettings
- 操作如下所示:
image.png
Mac电脑经常出现Github官方网站访问不了的情况
- 解决方案:在Mac系统文件
/etc/hosts/
中加入Github官方网站的ip地址; - 第一步:查询Github官方网站的ip地址,在ip地址网站中输入
www.github.com
,查询结果如下:
image.png - 第二步:确定域名IP,点击这里,结果如下:
image.png - 第三步:确定静态资源IP,点击这里,结果如下:
image.png - 第四步:打开系统文件
/etc/hosts/
,由于此文件是只读的不能直接修改,可将其拷贝一份至桌面,然后双击打开,添加内容有如下:
# 140.82.112.4 github.com
# 199.232.69.194 github.global.ssl.fastly.net
# 185.199.108.153 assets-cdn.github.com
# 185.199.110.153 assets-cdn.github.com
# 185.199.111.153 assets-cdn.github.com
199.232.28.133 raw.githubusercontent.com
- 第五步:将桌面上的hosts文件,替换系统的
/etc/hosts/
文件即可;
git在进行代码管理时遇到的问题及解决方案
-
第一个问题:
github提交代码出现报错:Support for password authentication was removed on August 13, 2021. Please use a personal access token instead
; -
第二个问题:
Mac上SourceTree使用时,遇到remote: HTTP Basic: Access denied fatal: Authentication failed for 'xxx/'
- 原因:账号的密码发生改变,导致无法访问远程仓库;
- 解决方案:Mac上打开钥匙串,输入source,然后将钥匙串中之前存储的账密信息删除,然后在SourceTree中拉取远程仓库代码,会弹出重新登录账密的弹框,输入更改之后的账密即可,如下所示:
image.png
-
第三个问题:
创建忽略文件.gitignore,然后往忽略文件.gitignore中添加内容,最后想将忽略文件.gitignore提交到远程仓库,发现.gitignore文件不能git add到暂存区
;- 原因:忽略文件.gitignore本身就不在git版本管理范围之内,且添加到忽略文件.gitignore中其他文件,也不在git版本管理范围之内,现在要强制将目标文件,纳入git版本管理范围之内;
- 解决方案:终端执行
git add -f 目标文件
;
-
第四个问题:
已经纳入git版本管理范围之内的文件,现在要将其忽略,不再进行跟踪,即在以后的开发中忽略其修改,不再提交到git远程仓库
;- 解决方案:终端执行
git update-index --assume-unchanged 目标文件
,如果想要再恢复跟踪,再次纳入git版本管理,终端执行git update-index --no-assume-unchanged 目标文件
;
- 解决方案:终端执行
-
第五个问题:
已经推送push过的文件,想从Git远程库中删除,并在以后的提交中忽略,但是却还想在本地保留这个文件
;- 解决方案:终端执行
git rm --cached 目标文件
,然后提交到远程仓库,则远程仓库会删除目标文件;
- 解决方案:终端执行