美文网首页
Git命令大全

Git命令大全

作者: 放羊娃华振 | 来源:发表于2019-09-30 14:44 被阅读0次

再使用Git的时候,有时候知道有这么一个命令能实现这样的功能,但是又想不起具体的命令。很多时候要花时间去网上找,但是这个比较费劲,要是把所有的好用的命令都记录下来,每次打开都到这里面搜索是不是会提升不少效率?

git中一些选项解释

-d
--delete:删除

-D
--delete --force的快捷键

-f
--force:强制

-m
--move:移动或重命名

-M
--move --force的快捷键

-r
--remote:远程

-a
--all:所有

从服务端拉取最新代码

git pull

远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为

git pull <远程主机名> <远程分支名>:<本地分支名>

如果远程分支是与当前分支合并,则冒号后面的部分可以省略:

git pull origin dev

本地分支push到远端

查看本地问价的变化

git status

添加本地变化的文件

git add -A

提交修改的代码到本地仓库

git commit -m"修改的描述"

git push origin dev

提交本地test分支作为远程的test分支

git push origin test:test  

强推到远程

git push origin HEAD --force

关联upstream

git branch --set-upstream-to=origin/dev

本地分支,关联服务器分支

git branch --set-upstream-to origin/devtest devtest 
或者
git branch --set-upstream-to=origin/devtest devtest 

拉取远程主机的更新

git fetch

这个命令将某个远程主机的更新全部取回本地

git fetch <远程主机名>

如果只想取回特定分支的更新,可以指定分支名

git fetch <远程主机名> <分支名> //注意之间有空格;例如:git fetch origin master

选择或者切换到指定分支(当本地没有dev分支的时候会拉去服务器的dev代码)

git checkout dev

把dev的代码合并到当前分支

git checkout dev

查看本地所有分支

git branch

查看远程所有分支

git branch -r

查看本地和远程的所有分支

git branch -a

新建分支

git branch <branchname> 

删除本地分支

git branch -d <branchname>

删除远程分支,删除后还需推送到服务器

git branch -d -r <branchname>

删除后推送至服务器

git push origin:<branchname>

重命名本地分支

git branch -m <oldbranch> <newbranch>

Git统计dzh程序员的代码行数

git log --author="dzh" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

新建本地仓库关联git云端

 a.git init  //初始化一个git仓库
 b.git remote add origin xxxxxx.git //绑定云端的git地址
 C.git branch --set-upstream-to=origin/master master  //关联分支
 d.   git pull --allow-unrelated-histories  //处理报错fatal: refusing to merge unrelated histories

远程先创建好分支然后拉到本地

git checkout -b dev origin/dev

本地先创建好分支再推送到远程

git checkout -b feature-branch    //创建并切换到分支feature-branch  
git push origin feature-branch:feature-branch    //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建)

添加忽略还是删不掉文件

git  rm -r --cached .idea

解决每次操作都需要输入用户名和密码

git config --global credential.helper store //在~/.gitconfig目录下会多出一个文件,这里会记录你的密码和帐号;再执行git pull 输入一次正确的帐号密码之后就不用再输入了

添加TAG

git tag -a v1.0.0 -m 'des for v1.0.0'

查看v1.0.0 TAG的描述

git show v1.0.0

推送TAG

git push origin --tags

查看Git的Log

git log

操作中有时候我们会进行错误的commit,这个时候想要撤销这次提交可以使用git reset命令

git log

git commit之后,想撤销commit

git reset --soft HEAD^
//HEAD^的意思是上一个版本,也可以写成HEAD~1
//如果你进行了2次commit,想都撤回,可以使用HEAD~2
# 几个参数:

 --mixed 
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。

## --soft  
不删除工作空间改动代码,撤销commit,不撤销git add . 

## --hard
删除工作空间改动代码,撤销commit,撤销git add . 
注意完成这个操作后,就恢复到了上一次的commit状态。

Git的commit注释写错了,只是想改一下注释

git commit --amend
//此时会进入默认vim编辑器,修改注释完毕后保存就好了

回滚到某个commit

git reset --hard HEAD^         //回退到上个版本
git reset --hard HEAD~3       //回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id     //退到/进到 指定commit的sha码

合并某个commit

git cheery-pick f3851b6ecdcf8e641d09ab98a4462c01721b9a71
// 右键commit点击Copy Revision Number后去commit号

本地回退到某次提交

//回退到需要的版本
git reset --hard ed3607b87ade3d1bc0c4781e9f0178f4b5864a99
//推送到服务器
git push -f -u origin master

同步远程分支,当远程分支删除了,本地还有,使用该命令即可

git remote prune origin

git merge的优雅操作

 git merge #没有参数
//即默认启用fast-forward方式进行合并,不会显示 feature,只保留单条分支记录。git直接把HEAD指针指向合并分支的头,完成合并。属于“快进方式”,不过这种情况如果删除分支,则会丢失分支信息。因为在这个过程中没有创建commit。

 git merge --squash
//用来把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用--squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。

 git merge --no-ff
//强行关闭fast-forward方式。可以保存你之前的分支历史。能够更好的查看 merge历史,以及branch 状态。

git修改全局邮箱

查看 git 邮箱:git config --global user.email 
修改 git 邮箱:git config --global user.email xxxx@qq.com

git修改项目邮箱

查看 git 邮箱 : git config user.email
查看 git 邮箱 : git config user.email xxxx@qq.com

git工程忽略文件权限导致的文件变化

git config core.filemode false

参考:
https://blog.csdn.net/halaoda/article/details/78661334

相关文章

网友评论

      本文标题:Git命令大全

      本文链接:https://www.haomeiwen.com/subject/yqofpctx.html