Git的常用操作指令

115 阅读4分钟

本地向远程分支仓库提交数据

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