1. 配置
(1)生成密钥对
cd ~/.ssh #安装后一般在这(没有则新建立该文件夹)
ssh-keygen -t rsa -C "your_email@youremail.com" #生成秘钥,假如没有
cat ~/.ssh/id_rsa.pub #查看秘钥
(2)ssh密钥添加到github
把该秘钥复制,填入github的setting中的ssh中
(3)来配置你的用户名和邮箱
git config --global user.name "xxx"
git config --global user.email "xxx@xx.com"
2. 常见的使用
#从远程主机克隆一个项目,在本地关联一个主分支master
git clone xxxxx/project
#查看本地的分支(带*的为当前分支,如果失败,先git fetch)
git branch
# 查看本地仓库状态
git status
#在本地建立一个跟远程相对应的分支dev(dev是开发者分支名)
git checkout -b dev(本地分支名) origin/dev(远程主机origin(默认名字)中dev分支名)
#切换分支名
git checkout 分支名
#提交文件
git pull origin 分支名(会在本地merge)
git add 文件 // git reset HEAD 文件(撤销文件的add操作)
git commit -m "xxx" // git reset --soft HEAD^(撤销git commit操作);git commit --amend //(修改commit 的内容)
git push origin 分支名
#写commit注释时候,如果需要换行,则先写 " 和内容,\enter等,最后结束时在打入 " 。
#忽略某些文件的提交
在根目录新建.gitignore文件,在文件中写上忽略的文件
3. 删除远程仓库的错误提交
(1) git reset --hard id // 在本地中,回到某一次id提交的状态(通过git log可以查看id,或者在远程浏览器中查看历史。注意:这里--hard参数会把本地代码一并删除;默认是--soft,只对本地的一次commit恢复且不删除代码。git rest --hard HEAD^回退到上一版;git rest --hard HEAD^^回退到倒数第二版)
(2) git push --force // 强行推送至服务器,需要项目设置为不保护该分支状态(Settings/Repository/Protected Branches中修改)
4. 修改远程仓库的错误commit注释
(1) git rebase -i HEAD~1 //修改倒数第一次的提交;命令git rebase -i作用为合并提交,git rebase -i HEAD~2意思是合并最近两次的提交
(2) 修改pick为edit //在第一步基础上会弹出文件修改界面
(3) git commit --amend // 修改注释内容
(4) git push --force // 强行推送至服务器,需要项目设置为不保护该分支状态(Settings/Repository/Protected Branches中修改,不到迫不得已不建议用)
5. 切换历史版本与切回当前版本
(1) git log // 查看本地每一次提交的id
(2) git checkout 历史id //复制id
(3) git checkout master //切回当前版本,假如当前分支是master
6. 远程仓库迁移
(1) 配置本地ssh key到远程仓库
(2) git remote set-url origin url // 这里的url为`git@新ip地址:NewUser/ProjectName.git`;远程仓库没有任何项目将自动创建,通过git remote -vv可查看是否设置好新的仓库地址
(3) git push -u origin master//第一次使用-u参数,之后可省略origin master
git 切换远程仓库地址的3种方式https://blog.csdn.net/k_young1997/article/details/90256789
其他,合并分支等如下:
参考git使用
提交后,需要修改commit注释,参考:https://www.cnblogs.com/superjishere/p/11578130.html