Git 上传代码碰到一下问题解决方法

持续更新中。。。

git介绍

Git 上传代码碰到一下问题解决方法_第1张图片
部分名词翻译

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

配置常用命令

  • 显示当前的Git配置
git config --list
  • 编辑Git配置文件
git config -e [--global]
  • 设置提交代码时的用户信息
git config [--global] user.name "[name]"
git config [--global] user.email "[email address]"

常用基础命令

  • 上传代码
git add [dir]         			// 添加指定目录到暂存区,包括子目录
git add .			  			// 添加当前目录的所有文件到暂存区

git push origin master  		// 上传本地指定分支到远程仓库
git push [remote] --force 		// 强行推送当前分支到远程仓库,即使有冲突
  • 下载代码
git clone [url]   				// 下载一个项目和它的整个代码历史
git fetch --all 				// 下载远程仓库的所有变动
git pull 						// 取回远程仓库的变化,并与本地分支合并
  • 提交
git commit -m [message]  		 // 提交暂存区到仓库区
git commit --amend         		 // 重做上一次commit,并包括指定文件的新变化
  • 撤销
git checkout [file] 			// 恢复暂存区的指定文件到工作区 
git checkout [commit] [file] 	// 恢复某个commit的指定文件到暂存区和工作区 
git checkout .  				// 恢复暂存区的所有文件到工作区
git reset --hard 				// 重置暂存区与工作区,与上一次commit保持一致
git reset [commit] 				// 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset --hard [commit] 		// 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
  • 查看信息
git status  					// 显示有变更的文件
git log 						// 显示当前分支的版本历史
git log --stat 					// 显示commit历史,以及每次commit发生变更的文件
git diff 						// 显示暂存区和工作区的差异
git remote -v 					// 显示所有远程仓库

完整上传步骤:

 1. git push add ***    		// 添加内容到暂存区
 2. git commit -m ***	 		// 提交上传备注信息
 3. git push origin master  	// 上传到远程服务器

碰掉以下情况解决方法

  • 当本地第一次下载远程仓库代码,上传时出现
    Git 上传代码碰到一下问题解决方法_第2张图片
    1、提示第二个红框中错误时,到此次上传代码的.git所在目录,进入到.git然后进入 hooks/
    执行 scp -p -P 29418 [email protected]:hooks/commit-msg (第三个红色框中部分内容)
    2、完成后,执行git commit --amend
    3、再次执行下图中代码,如果又报错和下图中错误一样的话,上传使用 git push origin HEAD:refs/for/master基本就没有问题了
    Git 上传代码碰到一下问题解决方法_第3张图片

目前发现的解决冲突的万能步骤:

  1. git stash save “*****” 执行储存
  2. git stash list 查看储存
  3. git fetch --all 强制同步服务器代码
  4. git reset --hard origin/master 重置节点
  5. QT打开工程的话,需要保存一下代码
  6. git stash list 再次查看第一次储存的位置
  7. git stash pop stash@{0} 提取储存信息进行合并,0 代表 步骤1 的储存信息编号,按实际编号修改
  8. 再次保存,运行,查看是否有需要解决的冲突
  9. 再次add、commit、push

合并代码也可以用1-8这个步骤

你可能感兴趣的:(git)