git常用指令
git 创建远程分支
# 创建本地分支
git checkout -b dev
# 建立本地到远端仓库的链接
git push --set-upstream origin dev
设置Git的user name和email:
$ git config --global user.name ""
$ git config --global user.email ""
生成SSH密钥过程:
# 查看是否已经有了ssh密钥:
cd ~/.ssh
# 生成密钥:
ssh-keygen -t rsa -C "xxx@icloud.com"
# 一路回车
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
# 最后得到了两个文件:id_rsa和id_rsa.pub
添加密钥到ssh:ssh-add 文件名需要之前输入密码。
在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。打开https://github.com/ ,登陆,然后添加ssh。
测试:ssh git@github.com
上传克隆全流程
# 设置全局姓名
$ git config--global user.name "姓名"
# 设置全局邮箱
$ git config --global user.email"邮箱"
# 项目git初始化
git init
# 查看git状态
git status
# 关联远程地址
git remote add origin https://gitee.com/passing92/allbs-cloud.git
# 拉取指定分支代码
git pull --rebase origin master
# 暂存所有本地代码
git add .
# 提交暂存代码至本地仓库
git commit -m '注释信息'
# 推送本地仓库变更至远程仓库指定分质
git push -u origin master -f
# 克隆指定库的代码
git clone https://gitee.com/passing92/allbs-cloud.git
单独对某个项目设置用户和邮箱信息
打开.git文件夹
修改文件config内容
强制覆盖本地
git fetch --all
git reset --hard origin/master
git pull
# 合并指令
git fetch --all && git reset --hard origin/master && git pull
# 指定本地分支与远程分支
git branch --set-upstream-to=origin/master master
检出指定分支
git checkout -b dev origin/dev
打版本,tag的使用
# 创建了本地一个版本 V1.2 ,并且添加了附注信息 'release 1.2'
git tag -a V1.2 -m 'release 1.2'
# 查看tag
git tag
# 显示附注信息,我们需要用 show 指令来查看
git show V1.2
# 同步到远程代码库
git push origin --tags
重新打版本
# 删除了本地 V1.2的版本
git tag -d V1.2
# 删除线上V1.2的版本
git push origin :refs/tags/V1.2
# 获取远程版本
git fetch origin tag V1.2
git 回滚某版本
git reset --hard commit_id(commit_id替换指定版本,可用 git log 指令查看)
git push origin HEAD --force #远程提交回退
git 本地分支完全替换另外的分支并强制推送远程服务器
# 查看所有分支
git branch
# 将Branch_xxx 分支内容完成替换当前所在的分支
git reset --hard Branch_xxxx
# 强制推送远程服务器
git push origin master --force
`
git 创建远程分支
# 创建本地分支并切换
git checkout -b 分支名
# 查看分支
git branch -r
git checkout -b branch 'dev'
git push --set-upstream origin dev
git分支合并
# 进入要合并的分支(如开发分支合并到master,则进入master目录)
git checkout master
git pull
# 查看所有分支是否都pull下来了
git branch -a
# 使用merge合并开发分支
git merge 分支名
# 查看合并之后的状态
git status
# 有冲突的话,通过IDE解决冲突;
# 解决冲突之后,将冲突文件提交暂存区
git add 冲突文件
# 提交merge之后的结果
git commit
# 如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
# 本地仓库代码提交远程仓库
git push
# git 将分支合并到分支,将master合并到分支的操作步骤是一样的。
git推送至不同的仓库
git remote add A A仓库地址
git remote add B B仓库地址
# 将代码推送至A仓库
git push -u A
# 将代码推送至B仓库
git push -u B
git删除提交过的某个文件的所有记录
将该文件从历史记录中移除:
git log --pretty=oneline --branches -- 文件路径
重写所有 commit,将该文件从 Git 历史中完全移除:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch 文件路径' -- --all
到这里,历史记录中已经没有该文件了。不过运行 filter-branch 产生的日志还是会对该文件有引用,所以还需要运行以下几条命令,把该文件的引用完全删除:
rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc
git prune
这时文件夹已经小多了。然后push代码,需强制 push:
git push --force
git对已经提交过的文件/文件夹进行忽略
# 忽略文件夹
git rm -r --cached 文件夹
# 忽略文件
git rm --cached 文件
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ALLBS!
评论