美文网首页
git常用命令

git常用命令

作者: Bai_白 | 来源:发表于2021-03-04 16:48 被阅读0次

    参考:廖雪峰的git教程

    • git init
      把这个目录变成Git可以管理的仓库

    • git add
      把文件添加到仓库(实际上就是把文件修改添加到暂存区)
      git add readme.txt 添加单个文件
      git add ./ 添加全部缓存文件

    • git commit -m "XXXXX"
      把文件提交到仓库,"XXXX"是本次提交的说明(际上就是把暂存区的所有内容提交到当前分支)

    • git status
      查看仓库当前的状态

      git status
    • git diff <file>
      查看readme.txt文件具体修改了什么内容

      git diff readme.txt
    • git log
      显示从最近到最远的提交日志
      git log --pretty=oneline 减少输出信息
      git log --graph 可以看到分支合并图

    • git reset
      版本回退或把暂存区的修改回退到工作区
      在Git中,用HEAD表示当前版本,也就是最新的提交,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本写成HEAD~100。
      回退到上一个版本 git reset --hard HEAD^
      想要回退到某个版本号 git reset --hard 1094a(1094a为你想要回退的那个版本的commit id,版本号没必要写全,前几位就可以了,Git会自动去找)
      git reset HEAD <file> 可以把暂存区的修改撤销掉,重新放回工作区。

    • git reflog
      记录每一次命令

      回退版本
    • git checkout -- <file>
      丢弃工作区的修改

      git checkout -- readme.txt
      撤销修改
    • git rm <file>
      删除一个文件
      先手动删除文件或者用rm命令删,然后使用git rm <file>和git add<file>(效果是一样的),并且git commit。
      另一种情况是删错了,因为版本库里还有,所以可以通过$ git checkout -- test.txt,把误删的文件恢复到最新版本。
      PS:从来没有被添加到版本库就被删除的文件,是无法恢复的!

    • git remote add origin <address>
      关联一个远程库

    • git push
      推送
      git push origin master 推送master分支的所有内容
      git push -u origin master 第一次推送(加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来)

    • git remote -v
      查看远程库信息
      git remote -v 显示更详细的信息

    • git remote rm <name>
      删除远程库(根据名字删除)
      比如:git remote rm origin

    • git clone <address>
      克隆一个本地库


    分支模块
    • git branch
      查看分支(当前分支前面会标一个*号)
    • git branch <name>
      创建分支
    • git checkout <name> 或者 git switch <name>
      切换分支
    • git checkout -b <name> 或者 git switch -c <name>
      创建+切换分支
      git checkout -b dev origin/dev 创建远程origin的dev分支到本地
    • git merge <name>
      合并某分支到当前分支
      git merge --no-ff -m "XXXX" <name> 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史能看到分支(因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去)
    • git branch -d <name>
      删除分支
      git branch -D <name> 丢弃一个没有被合并过的分支,强行删除
    • git stash
      把当前工作现场“储藏”起来(当手头工作还没有完成时)
      git stash list 查看
      恢复方法:1. git stash apply恢复,但是恢复后,stash内容并不删除,需要用git stash drop来删除
      2. git stash pop,恢复的同时把stash内容也删了
      git stash apply stash@{0} 恢复指定的stash
    • git cherry-pick <commit>
      把bug提交的修改“复制”到当前分支(即在master分支上修复的bug,想要合并到当前dev分支)
      bug对应的commit
    • git pull
      从远程抓取分支
      如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
    标签模块

    tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

    • git tag
      查看所有标签
    • git tag <name>
      打一个新标签
      git tag <name> <commit> 给历史提交打上标签
      PS:标签不是按时间顺序列出,而是按字母排序的
      git tag -a <name> -m "XXXX" <commit> 创建带有说明的标签,用-a指定标签名,-m指定说明文字
      PS:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签
    • git show <tagname>
      查看标签信息
    • git tag -d <tagname>
      删除本地标签
      git push origin :refs/tags/<tagname> 从远程删除标签
    • git push origin <tagname>
      推送某个标签到远程
      git push origin --tags 一次性推送全部尚未推送到远程的本地标签
    其他配置
    • git config --global color.ui true
      让Git显示颜色
    • git add -f <file>
      强制将忽略文件添加到Git
    • git check-ignore -v <file>
      检查.gitignore的配置
    • git config --global alias.st status
      配置别名(git status -> git st)
      -global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。

    相关文章

      网友评论

          本文标题:git常用命令

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