git常用命令

2018-08-23  本文已影响0人  坚持_6b18

git区域划分(git只会对暂存区、本地仓库中的代码进行版本管理):工作区(写代码的目录)、暂存区、本地仓库,区域流转:

将工作区代码推到暂存区
git add .
将暂存区中的文件推到本地仓库
git commit -m '日志'
本地仓库同步远端仓库
git pull
将当前分支和远端develop分支关联
git push --set-upstream origin develop
将本地仓库中内容同步到远端仓库
git push
比较暂存区和工作区的区别
git diff
比较暂存区和本地仓库的区别
git diff --cached
比较工作区和本地仓库的区别
git diff HEAD
将暂存区和工作区中的修改暂存起来(此处的暂存起来不是放到暂存区)
git stash
查看stash进度
git stash list
查看某个进度具体修改的文件
git stash show stash@{0} 
恢复进度,将之前暂存起来的进度拿出来
git stash pop
危险动作,将工作区中的修改撤出,恢复到修改前的版本,执行此操作后工作区内的修改不可找回
git checkout -- fileName
把暂存区的修改撤回到工作区
git reset HEAD fileName
将暂存区和工作区中的代码回退到commit指定的地方(注意:>在执行该命令时如果暂存区或者工作区有修改的内容需要暂存起来否则会被覆盖)
git reset --hard commit后面的标记前六位即可
把本地库最近一次commit撤回到暂存区
git reset --soft HEAD^
在本地库中还原HEAD指向的那次提交,即回退到HEAD的前一次提交,会生成一个新的commit log 并且HEAD指向的commit log不会被删除
git revert HEAD

git分支操作

删除远程不存在的相关联本地分支
git branch -r | awk '{print $1}' | egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) | awk '{print $1}' | xargs git branch -d 
删除项目中与远程未关联的所有文件
git clean -fd
删除本地分支
git branch -D 分支名称
将本地删除的分支推送到远程这样远程也会将本地删除的分支删除掉
git push origin :xxx(删除的分支)
在本地删除远程分支
git push origin -d branchName
查看所有分支(本地、远程分支)
git branch -a
列出所有远程分支
git branch -r
创建新的dev分支并切到dev分支
git checkout -b dev
切到进入到当前分支的上个分支,比如现在分支是由B分支切来的,在当前分支上执行git checkout -之后会回到B分支
git checkout -

git tag操作

常看所有tag
git tag
查看最近打的tag标签
git describe --tags `git rev-list --tags --max-count=1`
打tag
git tag 最后一个tag+1
将本地tag推到远端
git push origin 最后一个tag+1

查看git提交日志

git log
将commit日志显示成一行
git log --oneline
显示log信息,并显示本次改动的内容
git log -p
查看日志简要信息
git lg
查看改作者提交的所有日志,如果加上 -p同时显示出每次具体的>修改点
git lg [-p] --author '作者名称'

创建git用户并绑定邮件

配置git提交时的用户名
git config --global user.name "zhangsan"
配置git提交时的邮箱
git config --global user.email "email address"

使用场景

1.将本地仓库重新关联到另外一个远端仓库:

1.删除当前项目下的.git文件
2.创建本地仓库
git init
3.将本地文件交给git管理
git add .
4.将git暂存区中的文件放到git本地仓库
git commit -m '日志'
5.本地仓库关联远端仓库
git remote add origin 远端仓库中项目路径
6.将本地master分支推送到远程仓库中
git push -u origin master
7.输入账号和密码

2.找回git reset --hard覆盖掉的提交

1.你现在看git的历史记录,你可以看到两次提交
git log

提交日志:

98abc5a (HEAD, master) more stuff added to foo

b7057a9 initial commit

2.现在我们来重置回第一次提交的状态
git reset --hard b7057a9
git log

提交日志:

b7057a9 (HEAD, master) initial commit

3.这看起来我们是丢掉了我们第二次的提交,没有办法找回来了。但是 通过reflog 可以解决这个问题的。简单的说,它会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会被记录在reflog中
git reflog

提交日志:

b7057a9 HEAD@{0}: reset: moving to b7057a9

98abc5a HEAD@{1}: commit: more stuff added to foo

b7057a9 HEAD@{2}: commit (initial): initial commit

4.要找回我们第二次commit,只需要做如下操作
git reset --hard 98abc5a
5.再看一下 git 记录:
git log

提交日志:

98abc5a (HEAD, master) more stuff added to foo

b7057a9 initial commit

上一篇下一篇

猜你喜欢

热点阅读