Git命令记录

  • 设置用户名: git config --global user.name “myname”
  • 设置邮箱: git config --global user.email “myemail@xx.com”

初次使用必须先设置上面两个,用于区分不同用户

  • 创建版本库: git init
  • 添加文件: git add readme.me
  • 提交文件: git commit -m “日志记录”

-m 相当于提交时的一个备注,用于记录这次提交都干了什么

  • 查看状态: git status
  • 查看工作区与暂存区(git add后的内容)版本对比: git diff
  • 查看暂存区(git add后的内容)与仓库分支(git commit后的内容)版本对比: git diff --cached
  • 查看工作区与仓库分支(git commmit后的内容)版本对比: git diff HEAD – filename
  • 查看提交日志: git log
  • 版本回退: git reset HEAD^

HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上一个版本,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

  • 查看命令历史记录: git reflog

可以查看到每次的commit id,用于版本回退或回到未来版本

  • 丢弃工作区的修改: git checkout – file

两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git add时的状态。

  • 撤销暂存区的修改: git reset HEAD file

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

  • 删除文件: git rm file

注意一旦提交至版本库将无法恢复
1.如果你用的rm删除文件,那就相当于只删除了工作区的文件,如果想要恢复,直接用git checkout – 就可以 2.如果你用的是git rm删除文件,那就相当于不仅删除了文件,而且还添加到了暂存区,需要先git reset HEAD ,然后再git checkout – 3.如果你想彻底把版本库的删除掉,先git rm,再git commit

  • 添加远程库 git remote add origin git@github.com:XXX/learngit.git
  • 将本地分支推送到远程仓库 git push origin master
  • 克隆到本地仓库 git clone 远程仓库地址
  • 查看分支:git branch
  • 创建分支:git branch
  • 切换分支:git checkout
  • 创建+切换分支:git checkout -b
  • 合并某分支到当前分支:git merge

合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

  • 删除分支:git branch -d
  • 暂使存储当前工作现场: git stash

git stash应用场景:设A为游戏软件 1、master 上面发布的是A的1.0版本 2、dev 上开发的是A的2.0版本 3、这时,用户反映 1.0版本存在漏洞,有人利用这个漏洞开外挂 4、需要从dev切换到master去填这个漏洞,正常必须先提交dev目前的工作,才能切换(未提交就直接切换分支的话会报错,提醒必须先提交当前分支)。 5、而dev的工作还未完成,不想提交,所以先把dev的工作stash一下。然后切换到master 6、在master建立分支issue101并切换. 7、在issue101上修复漏洞。 8、修复后,在master上合并issue101 9、切回dev,恢复原本工作,继续工作。

  • 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

  • 查看远程库信息,使用git remote -v;
  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;
  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
  • 创建标签: git tag

对某次提交创建标签 git tag
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:git tag -a v0.1 -m “version 0.1 released” 1094adb

  • 查看标签列表: git tag
  • 查看某个标签详情: git show
  • 命令git push origin 可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d 可以删除一个本地标签;
  • 命令git push origin :refs/tags/可以删除一个远程标签。

git切换到指定远程分支的方法:

git checkout -b feature-xxx origin/feature-xxx
# 该命令可以将远程git仓库里的指定分支拉取到本地,这样就在本地新建了一个feature-xxx分支,并和指定的远程分支feature-xxx关联了起来。

删除本地分支并推到远端:

# 删除本地分支
git branch -d mybranch
# 推到远端(:代表删除)
git push origin :mybranch

参考链接

[1]. Git新建本地、远程分支并推送。

[2]. Git 分支命名规范(完)

[3] git切换到指定远程分支的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值