首次设置Git的user name 和 email
1 | git config --global user.name "eonun" |
Git的基础命令
master:默认开发分支 Head:默认开发分支origin:默认远程版本库 Head^:Head的父提交
| 命令 | 功能 | |
|---|---|---|
| 创建版本库 | ||
git clone <url> | 克隆远程版本库 | |
git init | 初始化本地库 | |
| `find . -name “.git” | xargs rm -Rf` | 删除本地仓库 |
| 修改和提交 | ||
git status | 查看状态 | |
git diff | 查看变更内容 | |
git add --all | 跟踪所有文件 | |
git add <file> | 跟踪指定文件 | |
git mv <old> <new> | 文件改名 | |
git rm <file> | 删除文件 | |
git rm --cached <file> | 停止跟踪但不删除 | |
git commit -m "message" | 提交所有更新过的文件,并添加提交信息 message | |
git commit --amend | 修改最后一次提交 | |
| 查看提交历史 | ||
git log | 查看提交历史 | |
git log -p <file> | 查看指定文件的提交历史 | |
git blame <file> | 以列表形式查看指定文件提交历史 | |
| 撤销 | ||
git reset --hard HEAD | 撤销工作目录中所有未提交文件的修改内容 | |
git checkout HEAD <file> | 撤销指定的未提交文件的修改内容 | |
git revert <commit> | 撤销指定的提交 | |
| 分支与标签 | ||
git branch | 显示所有本地分支 | |
git checkout <branch/tag> | 切换到指定分支或标签 | |
git branch <new-branch> | 创建新分支 | |
git branch -d <branch> | 删除本地分支 | |
git tag | 列出所有本地标签 | |
git tag <tagname> | 基于最新提交创建标签 | |
git tag -d <tagname> | 删除标签 | |
| 合并与衍合 | ||
git merge <branch> | 合并指定分支到当前分支 | |
git rebase <branch> | 衍合指定分支到当前分支 | |
| 远程操作 | ||
git remote -v | 查看远程版本库信息 | |
git remote show <remote> | 查看指定远程版本库信息 | |
git remote add <remote> <url> | 添加远程版本库 | |
git fetch <remote> | 从远程库获取代码 | |
git pull <remote> | 下载代码及快速合并 | |
git push <remote> <branch> | 上传代码及快速合并 | |
git push <remote> :<branch/tag-name> | 删除远程分之或标签 | |
git push --tage | 上传所有标签 | |
| 暂存 | ||
git stash | 暂存 | |
git stash list | 查看所有暂存信息 | |
git stash apply stash@{0} | 恢复 stash@{0} |
常用命令
Git 工作区/暂存区/版本库
1 | git init 把指定目录变成 Git 可以管理的仓库 |
远程仓库创与推送
1 | git remote add origin git@github.com:xxx/xxx.git 与远程库关联 |
github配置shh-key
生成秘钥
1 | ssh-keygen -t rsa -C "eonun@qq.com" |
将秘钥添加到ssh-agent
1 | ssh-add ~/.ssh/id_rsa |
在Github添加ssh-key
到github里 Settings > SSH and GPG keys > SSH keys 添加秘钥
秘钥内容是xxx_rsa.pub的内容
测试
1 | ssh -T git@github.com |
出现:
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
输入yse出现:
Hi eonun! You’ve successfully authenticated, but GitHub does not provide shell access.
若出现Hi后是用户名,说明成功了
修改.git下config中的url
修改前:
1 | url = https://github.com/eonun/eonun.github.io.git |
修改为:
1 | url = git@github.com:eonun/eonun.github.io.git |
配置多平台ssh-key
分别生成shh-key
或者都使用同一个秘钥
1 | ssh-keygen -t rsa -C 'eonun@qq.com' -f ~/.ssh/gitee_id_rsa |
配置
新建~/.ssh/config添加内容:
1 | # gitee |
Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径
测试
1 | ssh -T git@gitee.com |
例
新建仓库
Code所在根目录执行
1 | git init |
将项目的所有文件添加到仓库中
1 | git add . |
添加README
1 | git add README.md |
提交到仓库
1 | git commit -m "注释语句" |
将本地的仓库关联到GitHub,改成自己的地址
1 | git remote add origin https://github.com/xxxxx/Test.git |
上传前pull一下
1 | git pull origin master |
上传代码到远程仓库
1 | git push -u origin master |
中间可能会让你输入Username和Password,你只要输入github的账号和密码就行了。执行完后,如果没有异常,等待执行完就上传成功了。
更新仓库
查看当前的git仓库状态
1 | git status |
更新全部
1 | git add * |
接着添加更新说明
1 | git commit -m "更新说明" |
先git pull,拉取当前分支最新代码
1 | git pull |
出现:
fatal: 拒绝合并无关的历史时使用--allow-unrelated-histories忽略版本不同造成的影响push到远程master分支上
1 | git push origin master |
不出意外,打开GitHub已经同步了
分支管理
查看所有分支
1 | git branch --all |
重命名git远程分支
1、重命名远程分支对应的本地分支
1 | git branch -m old_local_branch_name new_local_branch_name |
2、删除远程分支
1 | git push origin :old_local_branch_name |
3、重新推送新命名的本地分支
1 | git push origin new_local_branch_name |