1.使用“git”代码管理工具,导入项目
注:在本地已创建了一个新项目,三方管理工具已配置好信息,需要将本地项目工程传到三方管理工具上,使用"git"分布式来管理,传到分支上
- cd 工程文件项目
- git init
//创建本地仓库 这时出现 Initialized empty Git repository in ... 创建空的本地仓库
- touch README.md
//创建帮助文件
- git add README
//(添加readme文件到本地仓库)
- git add .
//将项目的所有文件添加到缓存中。git add . (注意,后面有个点)表示添加目录下所有文件到缓存库,如果只添加某个文件,只需把 . 换成你要添加的文件名即可;
- git commit -m "注释内容"
//将缓存中的文件Commit到git库
- git remote add origin "上面复制的路径"
//将本地的库连接到远程仓库中,输入:git remote add origin
HTTPS链接
//(你的远程仓库地址,即是码云的项目地址)//和远程仓库进行关联
- git pull origin master
//先执行从远程库拉取项目
- git push -u origin master. //git push origin master
//上传本地项目到了三方代码管理库
以下是另外一种上传方式
- git push origin master 或 git push -u origin master//上传仓库到码云
(如果你是在分支操作,就将这个master变为你的分支名称)
注:若push失败,则需先从码云上将你建的空项目拉取到本地,先执行git pull origin master,再执行git push -u origin master 若任然push失败,则使用此命令 git push --force origin master
一些其他命令
git clone url(项目仓库地址) //克隆一个远程仓库,就是在本地建立一个新的项目。
git pull origin master //如果已经有一个项目,通过这条指令可以直接更新该项目
git status
//查看当前状态git add -A
//将所有代码添加到缓存中git commit -a -m "填写修改的内容"
//commit 到仓库中git push -u origin master
//提交到远程仓库中
分支管理
- git branch newbranch
//新建分支
- git branch -a
//查看远程分支
输出
* master
remotes/origin/HEAD -> origin/master
remotes/origin/dadiaoge
remotes/origin/master
*代表当前所在的分支
- git branch
//查看本地分支
输出
* master
newbranch
- git checkout new branch
//切换分支
输出
Switched to branch 'newbranch'
切换后可用git branch -a查看是否切换到当前分支
输出
master
* newbranch
- git add .
git commit -a
//提交改动到当前分支
可使用git status查看提交状态
接着切回主分支
- git checkout master
输出
Switched to branch 'master'
将新分支提交的改动合并到主分支上
- git merge newbranch
如果合并后产生冲突,可输入以下指令查看冲突:
- git diff
修改之后,再次提交即可;
接下来,就可以push代码了:
- git push -u origin master
这时可能需要你输入你的github用户名和密码,按照提示输入即可;
删除分支
- git branch -D newbranch
输出
Deleted branch newbranch (was 93a1347).
回退版本
- 查看历史版本
git log
- 回退到之前版本,并且代码也回滚到之前的代码
git reset --hard commit_ID
//这个commit_id就是通过git log查看到的commit_ID
- 回退到之前的commit缓存区,但是代码不会变化,这时可以选择性进行commit
git reset --soft commit_ID
合并其他分支的一个commit至本地分支
- 先找到要合并分支的commit的commit_ID,可以使用
git log
查看,可以通过xcode
或者sourcetree
都可以查看 - 关键命令
git cherry-pick
- 具体步骤
1. cd 你的项目
2. git cherry-pick commit_ID
这里需要将commit_ID替换成你想合并的commit
- 示例
git cherry-pick 0209edac
删除项目与远程仓库的连接
- 删除当前项目的远程仓库连接
git remote rm origin
2.重新添加一个新的远程仓库连接
git remote add origin 远程仓库地址
查看mac电脑的隐藏文件
当我们使用git开发过程中,有天突然创建了一个新的pods工程,但是这个新的工程并不会和我们的远程仓库关联上,这个时候就需要改改
- 打开或者关闭文件的隐藏东西。快捷键
⌘ ⇧ .
command + shift + .
- 删除
.git
和.gitignore
ssh 克隆 代码
ssh克隆代码比http克隆代码强一万倍,fuck,能用ssh,就不用http,会出现一万种问题,最常见的就是缓冲区不够,说的开辟更大的,先讲下http克隆代码
- 使用命令
git config --global http.postBuffer 524288000 和 git config --global https.postBuffer 524288000
,这个是500M。由于我们公司仓库很大,1.6个G,于是我开辟了2个G的空间,发现还是不行,后面不管我开启多大的,都不行。 - 第二种方案,只克隆最近一次提交的,就是克隆下来的只有最近的一次commit,使用命令
git clone --depth=1 https:xxx.git
,https:xxx.git 就是你的仓库地址,结果发现的确克隆下来了,但是克隆下来的只有master,没有其他分支,也是个坑。 - 接着第二种方案,如果说只要一个分支,还是可以将就使用,还需要使用一个命令,将其他commit 和 tag 再拉下来,使用命令
git fetch --unshallow
,最后再使用命令git pull --all
接下来还是讲ssh。首先创建ssh文件,一般系统默认的都不行,必须重新创建
ssh-keygen -t rsa -C "youremail@example.com"
youremail@example.com换成自己的邮箱账号。创建好后,会在.ssh目录下生成id_rsa、id_rsa.pub两个文件私钥和公钥通过
cat ~/.ssh/id_rsa.pub
查看公钥,并将公钥整体复制,配置到GitHub等后台。-
从头到尾都复制,放到key中
配置本地SSH
当我们使用sourcetree的时候,需要将ssh配置上去,
- 使用命令
ssh-add ~/.ssh/id_rsa
,添加到sourcetree里面 - 执行ssh-add -K ~/.ssh/id_rsa将sshkey添加到钥匙串
- cd 到 .ssh目录下, 用touch config命令创建config文件
- 执行open config, 打开config文件,输入以下内容并保存
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
这个时候,你使用sourcetree,才能够克隆ssh方法的代码
公司网络访问github受限制
- 编辑hosts,文件路径 /etc/hosts
- 添加ip地址
# GitHub520 Host Start
140.82.112.25 alive.github.com
140.82.112.5 api.github.com
185.199.110.153 assets-cdn.github.com
185.199.111.133 avatars.githubusercontent.com
185.199.111.133 avatars0.githubusercontent.com
185.199.111.133 avatars1.githubusercontent.com
185.199.111.133 avatars2.githubusercontent.com
185.199.111.133 avatars3.githubusercontent.com
185.199.111.133 avatars4.githubusercontent.com
185.199.111.133 avatars5.githubusercontent.com
185.199.111.133 camo.githubusercontent.com
140.82.114.22 central.github.com
185.199.111.133 cloud.githubusercontent.com
140.82.112.10 codeload.github.com
140.82.112.22 collector.github.com
185.199.111.133 desktop.githubusercontent.com
185.199.111.133 favicons.githubusercontent.com
140.82.112.4 gist.github.com
52.217.34.20 github-cloud.s3.amazonaws.com
52.217.81.156 github-com.s3.amazonaws.com
52.216.132.195 github-production-release-asset-2e65be.s3.amazonaws.com
52.217.41.76 github-production-repository-file-5c1aeb.s3.amazonaws.com
16.182.97.81 github-production-user-asset-6210df.s3.amazonaws.com
192.0.66.2 github.blog
140.82.112.3 github.com
140.82.113.17 github.community
185.199.110.154 github.githubassets.com
151.101.193.194 github.global.ssl.fastly.net
185.199.110.153 github.io
185.199.111.133 github.map.fastly.net
185.199.110.153 githubstatus.com
140.82.112.25 live.github.com
185.199.111.133 media.githubusercontent.com
185.199.111.133 objects.githubusercontent.com
13.107.42.16 pipelines.actions.githubusercontent.com
185.199.111.133 raw.githubusercontent.com
185.199.111.133 user-images.githubusercontent.com
13.107.213.40 vscode.dev
140.82.113.22 education.github.com
# Update time: 2024-01-17T07:52:51+08:00
# Update url: https://raw.hellogithub.com/hosts
# Star me: https://github.com/521xueweihan/GitHub520
# GitHub520 Host End