Git 常用指令(保持更新中)

初始化git

git init

添加远程仓库

git remote add origin https://

git remote -v (查看远程连接)

git remote set-url origin 你新的远程仓库地址(修改远程仓库地址)

查看用户名和密码

查看用户名 :git config user.name

查看密码: git config user.password

查看邮箱:git config user.email

查看配置信息: git config --list

修改用户名和密码

修改用户名:git config --global user.name "要修改的用户名"

修改邮箱:git config --global user.email "要修改的邮箱"

修改密码:git config --global user.password "要修改的密码"

克隆远程仓库

git clone http://        (克隆远程仓库)

git clone -b 分支名 仓库地址        (克隆指定分支)

创建分支

git branch 分支名  (创建分支)

git branch 新分支名 旧节点名        (已旧节点为基础,创建一个新的分支)

git branch -v (查看各个分支最后一个提交信息)

git branch -rv (查看远程分支)

git branch -a (查看所有分支)

git push --set-upstream origin + 分支名  (远程创建分支)


删除分支

git branch -d 分支名 (删除分支)

git push origin --delete 分支名 (删除远程分支)

切换到分支

git checkout 分支名

git checkout . (放弃当前本地所有已经修改的内容(未add))

git checkout -- 文件名  (放弃当前本地特定文件已经修改的内容(未add))

git checkout -b 分支名 (创建分支并切换到该分支)

查看当前状态

git status

查看提交记录

git log

git log 远程分支名 (查看远程分支LOG)

查看所有日志

git reflog

TAG

git tag (显示所有tag)

git checkout tagname (切换到对应tag,注意切换到tag后,HEAD是游离的状态,最好是创建一个新的分支去操作。)

git branch 分支名 tag名(切换到tag,并且创建新的分支)

git tag -a tagname -m "注释信息"        (创建一个带注释的tag)

git show tagname        (显示tag的详细信息)

git tag -f tagname -m "注释信息"        (强制更改原来tag的旧注释)

git tag -d tagname        (删除本地tag)

git push origin tagname        (推送特定tag到远端)

git push origin --tags        (推送所有tag到远端)

git push -d origin tagname        (删除远端tag)

git fetch tagname        (下载指定tag)

git fetch origin --tags        (下载所有tag)

查看暂存区

git ls-files        -c 暂存的文件(默认)  -d 删除的文件 -m 修改过的文件

添加文件到缓存区

git add .  (全部文件)

git add -A . (修改的文件)

删除暂存区内容(重新生效ignore文件时使用)

git rm -r --cached .

撤销已加入缓存区的文件

git reset HEAD -- . (撤销所有)

git reset HEAD -- filename (撤销特定目标)

提交缓存区的文件到本地仓库

git commit -m "log信息"

git commit -a -m log信息 (-m是输入提交信息,-a是可以把还没有执行add命令的修改一起提交)

推送本地仓库到远程仓库

git push origin master

强制推送本地仓库到远程仓库

git push origin master -f

拉取远程仓库的内容

git pull  (拉取并合并)=git fetch + git merge

git pull origin master –allow-unrelated-histories 拉取远程分支,并合并历史记录

git fetch    (只拉取不合并)  git fetch <远程主机名> <分支名> //注意之间有空格    $ git fetch origin master

git log -p FETCH_HEAD  (fetch 后可以查看修改记录)

退出git文本

Esc退出编辑,

:wq保存退出,

:q!直接退出

合并分支

git merge dev (将dev分支合并到当前分支)

开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支

git checkout dev

git pull

git checkout master

git merge dev

git push -u origin master

当master代码改动了,需要更新开发分支(dev)上的代码

git checkout master

git pull

git checkout dev

git merge master

git push -u origin dev

回退版本

git reset HEAD^            # 回退所有内容到上一个版本  

git reset HEAD^ hello.php  # 回退 hello.php 文件的版本到上一个版本  

git  reset  052e           # 回退到指定版本

注:git reset和git checkout 的区别
{
    git checkout是改变head的指向。如果master指向2,现在checkout1,会发现修改的内容都恢复到了分支1的状态。git branch -v查看会发现当前的和master是不一样的分支,也就是说checkout后会产生一个临时的分支。在这个临时分支上想要提交就必须再创建一个分支,再将该临时分支merge到创建的分支上之后才能提交。另外如果在这个临时分支上进行了修改,再想要checkout回master分支,会报错,提示有修改的东西没有git add。比如add commit后才能提交。
    git reset是直接改变master的内容。例如master指向2,现在reset1后,会发现修改的内容并没有发生改变。git branch -v查看会发现当前的和master是一样的分支。不同的是如果git status一下会发现提示有很多没有提交的内容。也就是说,reset之后,内容整体回退了。之前提交的状态也都消失了,状态回到了还没有add和commit的状态。这时候修改一些内容,然后再reset回2,发现是不会报错的,而且修改的内容也是在的。
    总结一下,reset和checkout最大的区别就相当于checkout会恢复到分支修改前的状态,而且是个临时分支。而reset会恢复到分支提交前的状态。
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值