git 常用命令

来源:互联网 发布:java程序员职位描述 编辑:程序博客网 时间:2024/06/05 16:24

1.安装 git

yum install git

2.版本管理

  • 1.创建版本库
git init

2.添加文件到版本库

git add readme.txt
  • 3.把文件提交到版本库
git commit -m "comment"

3.仓库关联

  • 1.关联本地仓库到远程仓库
git remote add origin git@github.com:michaelliao/learngit.git
  • 2.1.第一次关联本地仓库到远程仓库
git push -u origin master
  • 2.2.之后推送
git push origin master

4.从远程仓库克隆

git clone git@github.com:michaelliao/gitskills.git

5.分支操作

  • 1.创建分支
git branch dev
  • 2.切换分支
git checkout dev
  • 3.创建并切换分支
git checkout -b dev
  • 4.查看分支
git branch
  • 5.合并分支
    • 1.切换到目标分支

      git checkout master
    • 2.合并制定分支到当前分支

      git merge dev
  • 6.删除分支
    • 1.正常删除

      git branch -d dev
    • 2.强制删除

      git branch -D dev

6.时光穿梭机

  • 1.查看git当前状态
1.查看git状态git status2.查看分支合并图git log --graph --pretty=oneline --abbrev-commit
  • 2.查看修改 git diff
git diff readme.txt
  • 3.版本回退
    • 1.查看版本历史:从近到远

      全部信息
      git log
      简单信息
      git log --pretty=oneline
    • 2.回退到制定版本

      回退到上一个版本
      git reset --hard HEAD^
      回退到上上版本
      git reset --hard HEAD^^
      回退到指定 commid_id 版本:版本前几位即可
      git reset --hard 3628164
    • 3.查看执行过的 git 命令

      git reflog
    • 4.丢弃工作区的修改:– 一定要加上

      git checkout -- readme.txt
    • 5.把暂存区的修改撤销掉,重新放回工作区

      git reset HEAD readme.txt
    • 6.删除文件

      1.移除文件
      git rm test.txt
      2.提交移除动作
      git commit -m "remove test.txt"
    • 7.恢复被删除的文件

      git checkout -- test.txt

7.bug 分支管理

  • 1.存储当前正在进行的修改
git stash
  • 2.切换到bug分支
git checkout master
  • 3.修复并提交bug分支,删除bug分支
1.新建 bug 分支:git checkout -b issue-1012.修改bugvi readme.txt3.提交修改git add readme.txtgit commit -m "fix bug 101"4.合并修改到主分支git checkout mastergit merge --no-ff -m "merge bug fix 101" issue-1015.删除bug分支git branch -d issue-101
  • 4.切换到工作分支
git checkout dev
  • 5.还原之前的修改
1.查看git状态git status2.查看驻存去git stash list3.回复驻存区域3.1.恢复最近驻存并删除驻存git stash pop3.2.恢复驻存区git stash apply stash@{0}3.3.删除驻存区git stash drop stash@{0}

8.远程分支查看

  • 查看远程信息:git remote
  • 查询远程分支详细信息:git remote -v(显示可以拉取和推送的分支)
  • 推送本地分支到远程分支
git push origin master/dev
  • 创建本地的远程分支的分支
 git checkout -b dev origin/dev
  • 更新最新提交,然后再推送
  • git pull
如果拉取失败:There is no tracking information for the current branch建立本地和远程连接之间的对应关系 git branch --set-upstream dev origin/dev 再次拉取最新提交 git pull

9.多人协作模式

  • 首先,可以试图用git push origin branch-name推送自己的修改;
  • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

  • 如果合并有冲突,则解决冲突,并在本地提交;

  • 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream branch-name origin/branch-name。

10.标签管理

  • 1.为什么还要引入tag?
    • tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。
  • 2.打标签

    • 1.切换到要打标签的分支上

      git checkout master
    • 打标签

      1.默认在最新提交上打标签git tag v1.02.在指定的提交上打标签2.1.找出提交的commit idgit log --pretty=oneline --abbrev-commit2.2.打标签git tag v0.9 62249373.创建带有说明的标签git tag -a v1.0 -m "version 0.1 release" 6224937
    • 查看所有标签

      git tag
    • 查看标签信息

      git show v0.9
  • 3.删除标签

    • 1.删除本地标签

      git tag -d v0.9
    • 2.删除远程标签

      1.删除本地git tag -d v0.92.从远程删除git push origin :refs/tags/v0.9
  • 4.推送标签到远程

推送单个标签到远程git push origin v1.0推送所有标签到远程git push origin --tags

11.使用多个远程分支

  • 关联本地分支到远程分支
1.关联本地分支到远程分支git remote add origin git@gitee.com:liaoxuefeng/learngit.git2.如果报错:已经关联其他远程分支了git remote add origin git@gitee.com:liaoxuefeng/learngit.gitfatal: remote origin already exists.3.删除已关联远程分支git remote rm origin4.再关联到远程分支git remote add origin git@gitee.com:liaoxuefeng/learngit.git
  • 关联本地分支到多个远程分支
1.git 给远程分支默认起的名字叫 origin,如果使用多个分支那么需要给每个不同分支起不同的名字2.删除远程分支git remote rm origin3.关联到github远程分支库:名字叫githubgit remote add github git@github.com:michaelliao/learngit.git4.关联分支到码云git remote add gitee git@gitee.com:liaoxuefeng/learngit.git5.查看远程仓库会看到2个仓库git remote -v6.如果要推送到 githubgit push github master7.推送都码云git push gitee master

12.自定义 git

  • 1.让 git 显示颜色
git config --global color.ui true
  • 2.忽略特殊文件
    • 建立 .gitignore
    • 编写内容

      # Python:
      *.py[cod]
      *.so
      *.egg
      *.egg-info
      dist
      build
    • 供参考的 .gitignore 例子:https://github.com/github/gitignore
    • 把 .gitignore 提交到 git
    • 强制加入被忽略的文件

      git add -f App.class
    • 检查哪个规则忽略了指定文件

      git check-ignore -v App.class

13.配置别名–global:参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用

  • 1.git status 使用 git st
git config --global alias.st status
  • 2.git 默认缩写
co->checkoutci->commitbr->branch
  • 3.unstage:撤销暂存区修改
git config --global alias.unstage 'reset HEAD'
  • 4.git last:显示最后提交信息
git config --global alias.last 'log -1'
  • 5.显示git提交历史的树
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
  • 6.查看 git 配置文件(当前仓库,当前用户在用户主目录下的一个隐藏文件.gitconfig中)
cat .git/config [core]    repositoryformatversion = 0    filemode = true    bare = false    logallrefupdates = true    ignorecase = true    precomposeunicode = true[remote "origin"]    url = git@github.com:michaelliao/learngit.git    fetch = +refs/heads/*:refs/remotes/origin/*[branch "master"]    remote = origin    merge = refs/heads/master[alias]    last = log -1
  • 7.删除别名
直接把对应的.git/config中的 alias 里面的行删掉即可
原创粉丝点击