本地向远程分支仓库提交数据
git init // 初始化git
git add . // 把所有文件暂存(.gitigone文件配置的忽略项除外)
git commit -m "提交信息" // 暂存区数据提交本地
git remote add origin 远程url地址 // 建立远程连接
git pull --rebase origin 远程分支名 // 拉取远程分支中数据同步本地
git branch -a // 查看远程分支
git checkout -b dev origin/远程分支名 // 创建dev开发分支并与远程的分支建立连接
git branch -vv // 查看本地与远程分支的链接情况
git push -u origin dev:远程分支名 // 把本地dev分支的数据提交远程分支
Git常用命令
| 命令行 | 描述 |
| git init | 初始化git |
| git clone url地址 | 克隆远程目录,将远程服务器仓库镜像拷贝到本地 |
| git add XXX | 把当前文件夹下的xxx文件提交暂存区,xxx可以为 . 表示当前文件夹下的全部文件 |
| git commit -m "提交信息" | 把暂存区文件保存到本地,-m 提交信息 |
| git remote add origin url路径 | 把本地文件导入到对应资源路径下,建立本地与远程的链接 |
| git pull --rebase origin 分支名 | git仓库创建时,有 README.MD 文件或其他文件,则先拉取代码,如果仓库是空的则跳过 |
| git push -u origin 分支名 | 提交本地仓库到远程仓库 |
| git config --global http.sslVerify "false" | 解除ssl验证 |
分支拉取
| 命令行 | 描述 |
| git remote -v | 查看远程连接 |
| git branch | 查看本地分支;-r 远程分支;-a 本地远程所有分支 |
| git fetch origin 分支名 | 拉取远程分支的最新内容 |
| git merge origin/远程分支名 或 FETCH_HEAD | 把拉取的最新内容合并到当前分支 |
分支操作和版本回退
版本回退
| git reset --soft 版本号 | 撤销commit(未push提交) |
| git reset --mixed 版本号 | 撤销commit和add两个动作(未push提交) |
| git reset --hard 版本号 | 撤销并舍弃指定版本号之后的提交记录(慎用) |
| git revert 版本号 | 撤销,但是保留了提交记录(推荐使用) |
| git revert --abort | 取消恢复,再次执行试试 |
| git push origin 分支名 -f | 强制推送到远程 |
分支操作
| git branch | 列出所有分支 |
| git branch xxx | 创建一个名为xxx的分支 |
| git checkout xxx | 切换到xxx分支 |
| git checkout -b xxx | 创建并切换到xxx分支 |
| git merge xxx | 把xxx分支合并到当前分支 |
| git branch -d xxx | 删除指定的本地分支 |
| git push origin --delete name | 删除指定远程分支 |
暂存当前状态
| git stash | 将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录。 |
| git stash save "当前状态信息" | 作用等同于git stash,区别是可以加一些注释 |
| git stash list | 查看当前stash中的内容 |
| git stash pop | 将当前stash中的内容弹出,并应用到当前分支对应的工作目录上(注:该命令将堆栈中最近保存的内容删除(栈是先进后出)) |
| git stash apply | 将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,适应于多个分支的情况。 |
| git stash drop + 名称 | 从堆栈中移除某个指定的stash |
| git stash clear | 清除堆栈中的所有内容 |
| git stash show | 查看堆栈中最新保存的stash和当前目录的差异。 |
| git stash branch | 从最新的stash创建分支 |
Git的常见问题
在使用Git的过程中有时会出现一些问题
fatal: refusing to merge unrelated histories
在git pull或者git push中都有可能会遇到,这是因为两个分支没有取得关系
解决方案:
在你操作命令后面加--allow-unrelated-histories,
例如:
git merge master --allow-unrelated-histories
git pull origin master --allow-unrelated-histories
Please make sure you have the correct access rights and the repository exists
ssh key有问题,导致的连接不上服务器。
1、首先要重新在git设置一下身份的名字和邮箱。
git config --global [user.name](http://user.name) "yourname"
git config --global user.email“your@email.com"
2、删除.ssh文件夹(直接搜索该文件夹,一般在C盘的Users文件夹下)下的known_hosts(手动删除即可,不需要git)
3、git输入命令
ssh-keygen -t rsa -C "your@email.com"
系统会自动在.ssh文件夹下生成两个文件,id_rsa和id_rsa.pub,用记事本打开id_rsa.pub。将全部的内容复制。
4、打开github.com/,gitee.com/登陆你的账户,进入设置ssh
5、在git中输入命令: ssh -T git@github.com