git命令

git操作

一、上传项目到git

1、登录github,点击start a project跳转到Create a new repository页面,填写项目名称,点击Create repository按钮
2、进入本地项目目录下,右键点击git bash here,敲入以下命令即可

	// 把这个文件夹变成Git可以管理的仓库
	git init 
	// 把项目添加到仓库(或git add .把该目录下的所有文件添加到仓库,注意点是用空格隔开的)
	// 在这个过程中你其实可以一直使用git status来查看你当前的状态
	git add . 
	//  把项目提交到本地仓库
	git commit -m "注释"
	// 与github(远程仓库)建立联系
	// git remote rm origin 删除联系  git remote -v 已存在远程分支
	git remote add origin https://github.com/husterlihuijuan/study.git
	 // 把本地库study的所有内容推送到远程仓库(也就是Github)上,此后,每次本地提交后,
	 // 只要有必要,就可以使用命令git push -origin master推送最新修改   
	git push -u origin master

3、至此项目上传完成

二、修改代码提交到git

1、修改代码后提交

  • 如果是在master上开发:
	git commit -am '测试123' // 提交到master分支
	git push -u origin master // 提交本地master分支到远程仓库
  • 如果是在分支上开发:
    git commit -am '测试123' // 提交到本地分支
	git checkout master // 切换到master
	git pull origin master // 将master代码更到最新
	git merge note // 合并分支到master,合并冲突时git merge --abort 回退,
	   			   // 或者在当前分支上(master),找到冲突文件,直接修改冲突代码
	git push -u origin master // 提交本地master分支到远程仓库
	git log --oneline --graph // 查看提交历史分支

2、创建分支

  	git branch note //创建note分支
  	git checkout note //切换到note分支
  	git  branch -d note //删除分支note

3、把分支添加到github上

	git push --set-upstream origin note //note分支已经上传到了 github
三、删除github上某个分支的文件夹

在github上只能删除仓库,却无法删除文件夹, 所以只能通过命令来解决,如下:删除master分支下的doc文件夹

	git pull origin master //将远程仓库里面master分支的项目拉下来

	dir  //查看master分支有哪些文件夹

	git rm -r --cached doc  //删除master分支下的doc文件夹
	git commit -m '删除了doc'  //提交,添加操作说明

	git push origin master// 将本次更改更新到github项目上去

(每次增加文件、删除文件或修改文件,都要add、commit 然后直接 git push origin master,就可以同步到github上了)

四、从github上clone项目到本地
	git clone https://github.com/husterlihuijuan/reacter.git

此时 在所选的盘里会自动有一个reacter文件夹,说明已经克隆到本地,但此时该目录 并不是git可以管理的仓库

进入该目录,在项目目录下

	D:\reacter>git init //让该reacter目录变成git可以管理的仓库,且此时已经和远程仓库自动建立好了联系

但此时 只有一个master分支,若你需要另外一个分支,在另外一个分支上工作,把另外一个分支也克隆下来,如,你需要 greeting分支

	D:\reacter>git checkout -b greeting origin/greeting //此时你就把greeting分支克隆到本地了,通过 git branch 可以查看

接下来就可以在本地进行工作了

五、github回退commit内容
	git log // 查找提交日志log,找到对应的commit 版本号
	git reset --soft xxxxxxxxxxxxxxxx // xx 为版本号
注:
	git reset --soft  // 回退到某个版本,新的变更不会丢失,只回退了commit的信息,
					  // 不会恢复到index file一级。如果还要提交,直接commit即可
	git reset --hard  // 彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉
	git reset --mixed // (默认)保留工作目录,并且清空暂存区。也就是说,工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。
	                  // 简而言之,就是「把所有差异都混合(mixed)放在工作目录中」
	详细解释:https://www.jianshu.com/p/c2ec5f06cf1a
六、查看远程分支
	git remote 不带参数,列出已经存在的远程分支
	git remote -v // --verbose 列出详细信息,在每一个名字后面列出其远程url,
			      // 此时, -v 选项(译注:此为 –verbose 的简写,取首字母),显示对应的克隆地址。
	git remote add url   添加一个远程仓库
七、其他常用命令
	git fetch --all  // 将远程主机的更新全部取回本地
	
	git merge origin/master  // 在本地(当前)分支上合并远程分支

	git merge --abort  // 终止本次merge,并回到merge前的状态

	git pull origin master  // 从远程获取最新版本并merge到本地等同于
							// git fetch origin master + $ git merge origin/master(前者更安全一些)
	git push origin master   // 将本地master分支推送到远程origin主机的master分支

	git log xx  // 查看xx文件的commit记录

	git log -p xx   // 查看xx文件每次提交的diff
	
	git log --pretty=oneline xx  // 查看xx文件提交的历史记录(只显示哈希值和提交说明)

	git log --pretty=raw  // 查看commit之间的父子关系(root commit是没有父提交的)
	git log --graph  // 查看当前分支commit生成的树状图

	git diff HEAD HEAD^1 -- xx  // 查看xx文件不同版本之间的差异
	git diff HEAD~1  // 显示父节点的提交
	
	git diff --staged/--cached  // 显示暂存区和上一次提交的不同,git add之前忘diff的后悔药(👍)

	git show --stat  // 查看最后一次的修改

	git show HEAD  // 查看指定版本的修改(可省略HEAD,默认当前版本) 同上

	git show HEAD xxx  // 查看指定版本xx文件的修改(可省略HEAD,默认当前版本)

	git reset --hard HEAD  // 回滚到指定版本,同时清空工作目录的所有改动
	git reset --soft HEAD  // 回滚到指定版本,同时保留工作目录和暂存区的内容,并把重置的位置所导致的新的文件差异放进暂存区(👍)

	git reset --mixed HEAD  // (默认)回滚到指定版本,同时保留工作目录的内容,并清空暂存区(👍)

	git reset --hard origin/master  // 将本地master与远程master同步
	
	注:
	git中‘~’和‘^’的区别:
	(<commit>|HEAD)^n  // 指的是HEAD的第n个父提交,可以通过在“^”后面跟上一个数字,表示第几个父提交,“^”相当“^1”。
					   // 例如:HEAD^2 表示HEAD的第二次父提交。
	(<commit>|HEAD)~n  // 指的是HEAD的第n个祖先提交,
					   // 可以通过在“~”后面跟上一个数字,表示第几个祖父提交,“~”相当“~1”,“~n”相当于连续的<n>个“^”。
					   // 例如:HEAD~2 表示HEAD的第一个父提交的第一个父提交。
	等式1:HEAD~ === HEAD^ === HEAD^1
	等式2:HEAD~2 === HEAD^^ === HEAD^1^1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值