1. Git安装
Git(官网:https://git-scm.com/download/)安装之后鼠标右键会自动多出两个选项,这时就代表了安装成功
2. git初始化及提交
第一次clone 使用ssh-keygen -o 生成ssh密钥
Git global setup
git config --global user.name "username"
git config --global user.email "email@123.com"ssJ
远程到本地
git clone [url] //获取全部分支内容,整体下载时间较长 & 所占磁盘空间较大
git clone -b [branch] [url] //拉取特定分支
git clone -b [branch] --single--branch git_[url] // 获取指定分支的代码
git clone --depth 10 [branch] //只会获取最近 xx(10条提交记录的)代码,默认是master分支, 如果想要指定分支,可以结合 -b --single--branch 使用!
提交创建文件目录
cd existing_folder
git init //初始化
git remote add origin [url] //上传的代码仓库地址
git add . //收集本地文件
git commit -m "提交版本信息" //提交信息
git push -u origin master //更新到服务器
使用git commit --amend 修改commit信息
删除文件 或文件夹
本地删除 :git rm -r [file/dir]
本地提交:git commit -m “修改信息”
推送服务器 git push origin [url]
3. 错误处理:
(1)第一次提交代码
把代码上传到master分支上执行如下。
git push -u origin master
在使用git 对源代码进行push到gitHub时可能会出错, 错误代码如下:
hint: Updates were rejected because the tip of your current branch is behin
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
尝试下面的命令
git getch
git merge
或
git pull (网上说与上两个命令作用相同?)
但是仍然不行
出现错误的主要原因是github中的README.md文件不在本地代码目录中
可以通过如下命令进行代码合并【注:pull=fetch+merge]
git pull --rebase origin master
同步远程仓库更新到本地
git pull --rebase origin master
执行上面代码后可以看到本地代码库中多了README.md文件
此时再执行语句 git push -u origin master即可完成代码上传到github
##2. 本地落后远程 且存在较大分歧。想要拉去远程最新的版本到本地
提示: Your branch and ‘origin/master‘ have diverged
可执行如下命令
git fetch origin
git reset --hard origin <branch>
4. 分支操作
在本地新建分支: git branch newBranch
切换新分支: git checkout newBranch
创建并切换到新分支: git checkout -b newBranch
将新分支发布在远程服务器上: git push origin newBranch
在本地删除一个分支: git branch -d newBranch
同步远程端删除一个分支: git push origin :newBranch (分支名前的冒号代表删除)
删除远程分支
git push origin --delete [branch_name]
5. 子模块:
5.1 子模块的添加
添加子模块非常简单,命令如下:
git submodule add
其中,url为子模块的路径,path为该子模块存储的目录路径。
执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径)
git diff --cached查看修改内容可以看到增加了子模块,并且新文件下为子模块的提交hash摘要
git commit提交即完成子模块的添加
5.2 子模块删除
git submodule deinit submodule_name
git rm submodule_name
rm -rf .git/modules/submodule_name
5.3 子模块的使用
5.3.1 将新的 URL 复制到本地配置中
$ git submodule sync --recursive
克隆项目后,默认子模块目录下无任何内容。需要在项目根目录执行如下命令完成子模块的下载:
git submodule init
git submodule update
或:
git submodule update --init --recursive
6. 仓库迁移
迁移至不同的 Git 托管服务
备份原仓库:在迁移前,确保备份原始仓库。
创建新仓库:在目标 Git 托管服务上创建一个新的仓库。
克隆原仓库:使用 Git 克隆命令将原仓库克隆到本地:
git clone --mirror <原仓库地址>
进入克隆的仓库目录:
cd <仓库名称>
添加新远程地址:将新创建的仓库设置为新的远程地址:
git remote set-url --push origin <新仓库地址>
推送到新仓库:
git push --mirror
在同一个托管服务中进行仓库的迁移
备份原仓库:同样,在进行任何操作之前,请确保备份原始仓库。
创建新仓库:如果需要将仓库从一个用户或组织下迁移到另一个用户或组织下,请确保目标用户或组织中已创建新的仓库。
导出原仓库:在原仓库的设置或管理页面中,查找导出或迁移仓库的选项。有些 Git 托管服务提供了直接的导出功能,可以将仓库导出为一个压缩文件。
导入到新仓库:在目标用户或组织的管理页面中,查找导入或导入仓库的选项。将刚刚导出的仓库文件上传或导入到新的仓库中。
验证迁移结果:确保所有分支和提交都已成功迁移到新的仓库中