创建本地仓库
- 创建一个新的本地仓库并提交(先在网页端创建远程仓库)
git init
git remote add origin https://xxx.git
git add .
git commit -m "first commit"
git push origin master
git status
git diff my_file
git push origin master -f
更新本地仓库
git fetch --all
git pull
- 当本地与远程冲突时,把HEAD指向最新版本,强制覆盖本地
git reset --hard origin/master
下载仓库
git clone https://xxx.git
git clone -b my_branch https://xxx.git
git submodule update --init --recursive
git clone -b branch_name https://xxx.git --recursive
配置本地仓库
git config --system --list
git config --global --list
git config --local --list
git config --global user.name "my_name"
git config --global user.email "my_email"
- 保存Git账号和密码至当前计算机(记录至
~/.git-credentials
)
git config credential.helper store
git push origin master
创建分支
git branch
git branch my_branch
git checkout my_branch
git checkout -b my_branch
git branch -d my_branch
git branch -m old_name new_name
git push origin new_name
git push --delete origin old_name
- 当开发分支
dev
达到上线标准,要合并到主分支master
git add .
git commit -m "xxx"
git checkout master
git merge dev
git push
git add .
git commit -m "xxx"
git checkout dev
git merge master
git push
创建子模块
git submodule add https://xxx.git
git submodule update --init --recursive
# 在新功能包A中使用已存在功能包B时,应以子模块形式添加
# 当修改A中的B后,应先在B中提交,从而更新B仓库,然后在A中提交,从而更新A仓库,即修改一次需提交两次
# 建议在A中提交时,commit为“Update submodule B”
# 如果不希望在A中改动原有的B,则应该在添加子模块时,创建B的一个新的分支,建议以A命名
# rm -rf 子模块目录
# 修改.gitmodules
# 修改.git/config
# rm -rf .git/modules/子模块目录
使用cnpmjs镜像地址
- 将
github.com
改为github.com.cnpmjs.org
- 已经由
github.com
下载的本地仓库通过手动更改.git/config
中的url
重新定向至github.com.cnpmjs.org
- 已经由
github.com
下载的子模块通过手动更改在.git/modules/子模块目录/config
中的url
重新定向至github.com.cnpmjs.org
SSH密钥验证
- 从2021年8月13日开始,GitHub进行身份验证时不再接受帐户密码访问,只接受基于密钥(token)的身份验证,通过以下命令可以生成密钥
ssh-keygen -t rsa -C "email@email.com"
- 默认状态下,密钥将保存至
~/.ssh/id_rsa.pub
,只需复制其中的内容至网页版GitHub账号的SSH keys中,即可实现本地与GitHub仓库的配对 - 使用密钥验证时,
.git/config
中的url
应重新定向至git@github.com:user_name/repo.git
,通过以下命令可设置url
# 查看url
git remote -v
# 修改url
git remote set-url origin git@github.com:user_name/repo.git