• Git常用命令备忘录


    Git是分布式版本控制系统,相对于SVN等集中式版本控制系统,其特点是没有集中式版本控制系统的“中央服务器”,每台电脑保存有完整的版本库,这样在没有网络的情况下也能进行分支创建、切换等操作,同时也避免了中央服务器故障而导致的风险。

    基本操作

    创建仓库,即创建.git文件夹:

    git init

    文件添加到仓库,对应文件或目录生成快照索引,放入暂存区,后续此文件会被监控:

    git add file.txt

    git add -f app.class   //强制添加被gitignore的文件

    文件提交,将已经在暂存区的索引信息提交到仓库:

    git commit -m “some msg” file.txt

    git commit -am //提交已跟踪文件到暂存区,并提交到仓库

    提交日志:

    git log --pretty=oneline   //pretty=onelne表示一行显示,graph分支合并图

    git log中commit id表示唯一的版本,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上个版本,HEAD~100表示上100个版本,以此类推。

    命令历史:

    git reflog

    比较版本差异:

    git diff HEAD -- file.txt

    查看工作区状态:

    git status

    撤销修改(直接丢弃工作区的文件):

    git checkout -- file.txt

    版本回退,也可以将暂存区的文件退到工作区:

    git reset –hard <commit id>  //文件已修改,并保存到暂存区未commit

    场景1:未保存到暂存区,直接替换工作区文件,用命令git checkout -- file。

    场景2:保存到暂存区未commit,想要丢弃,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

    保存到暂存区未commit(场景2)可以直接用:git reset –hard head

    删除文件:

    git rm  (需要commit)

    远程仓库

    创建SSH Key:

    ssh-keygen -t rsa -C "youremail@example.com"

    用户目录下游.ssh,其中id_rsa和id_rsa.pub分别代表私钥和公钥,公钥可以上传到github的SSH Keys页面

    克隆远程仓库(默认clone最新分支,如果要切换其他分支,需要切换):

    git clone

    本地仓库和关联远程仓库(仅做关联):

    git remote add origin git@server-name:path/repo-name.git

    第一次推送远程仓库(-u关联本地master和远程mater):

    git push -u origin master

    后续推送远程仓库:

    git push origin master

    分支相关

    查看分支:

    git branch

    创建分支:

    git branch <name>

    切换分支:

    git checkout <name>

    创建+切换分支:

    git checkout -b <name>

    合并分支到当前分支:

    git merge <name>       //合并到当前分支

    git merge --no-ff -m "merge with no-ff" dev  //禁止Fast forward,使用普通模式合并,合并后有历史分支,能看出来曾经做过合并,fast forward看不出来曾经做合并。

    删除分支:

    git branch -d <name>

    git branch -D <name>  //-D表示强制删除分支,未合并分支内容会丢失

    暂存工作区:

    git stash

    恢复工作区:

    git stash pop

    查看远程仓库信息:

    git remote -v

    从远程分支拉取:

    git pull

    本地分支推送远程:

    git push origin branch-name

    本地创建和远程对应的分支:

    git checkout -b branch-name origin/branch-name

    建立本地分支和远程分支关联:

    git branch --set-upstream branch-name origin/branch-name

    整理提交历史线:

    git rebase

    标签相关

    标签是为了标记某些状态的版本,取标签就是取出对应打标签时刻的历史版本。

    打标签:

    git tag v1.0

    查看所有标签:

    git tag

    对某次提交打标签:

    git tag v0.9 f52c633

    查看标签信息:

    git show v0.9

    指定标签信息:

    git tag -a <tagname> -m "..."

    推送本地标签到远程:

    git push origin <tagname>

    推送全部未推送的本地标签:

    git push origin --tags

    删除一个本地标签:

    git tag -d <tagname>

    删除一个远程标签:

    git push origin :refs/tags/<tagname>

    其他

    配置别名:

    git config –global alias.st status

    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"

    git lg

    配置文件:

    配置git时,加上—global针对当前用户起作用,如果不加,只对当前仓库起作用

    每个git仓库配置文件都放在.git/config文件夹

    .gitignore文件(要放到版本库):

    github已经写好的gitignore文件:https://github.com/github/gitignore

    Git Cheat Sheet:https://www.git-tower.com/blog/git-cheat-sheet/

  • 相关阅读:
    Ubuntu adb device
    ubuntu系统下创建软件桌面快捷方式
    Ubuntu 配置java环境变量
    Ubuntu 12.04 安装Chrome步骤
    java和php中static+final+synchronized 总结
    Sensor Hub 初探
    Ionic+PhoneGap+ Cordova
    Ionic初探 + 混合app的尝试
    ubuntu+dpkg+apt-get+aptitude 区别
    ubuntu下桌面系统及切换gdm+kdm+lightdm
  • 原文地址:https://www.cnblogs.com/bohaoist/p/9549393.html
Copyright © 2020-2023  润新知