git常用命令

基本概念

        版本库.git文件 -- 当我们使用git管理文件时,一般它会多出一个.git文件,我们将称为版本库

        工作区             -- 本地项目存放文件的位置。

        暂存区             -- 顾名思义就是暂时存放文件的地方,是通过git add 命令将工作区的文件添加到缓冲区。

        本地仓库          -- 通常情况下,我们使用git commit 命令可以将暂存区的文件添加到本地仓库。

        远程仓库          -- 举个例子,当我们使用GItHub托管我们项目时,它就是一个远程仓库。


git文件状态

        通过git status

                untracked : 在暂存区没有该文件

                modified : 修改改文件

                staged 使用 git add 暂存


分支管理规范

        master分支:

                主分支,用于部署生产环境的分支,确保稳定性。

                master分支一般由develop以及hotfix分支合并,任何情况下不能直接修改

        develop分支:

                develop为开发分支,通常情况下,保存最新完成以及bug修复后的代码

                开发新功能时,feature分支都是基于develop分支下创建的

        feature分支:

                开发新功能,基于上以develop为基础创建feature分支

                分支命令 : feature/开头的为特性分支,命令规则: feature/user_module 、 feature/cart_module

        release分支:

                release为预上线分支,发布提测阶段,会release分支代码为基准提测。

                比如develop完善后准备上线,就release合并develop,检车下是否有问题,没问题就提测。【这个步骤可略过】

        hotfix分支:

                线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支和develop分支。

                分支命名:hotfix/开头的为修复分支,他的命名规则与feature分支类似。


        小规模流程分支:

                简单一点的话,其实可以只需要master 、dev、hotfix就即可。 

                master作为线上,dev作为开发并且测试环境, hotfix是修改bug/或者开发新功能。 

                hotfix完成了提交到dev, dev测试环境没问题,再把hotfix提交到master线上去。 

                新bug或者新需求,再从master中检出分支。


常用命令:

1、初始化新仓库             git init
2、克隆代码                 git clone
3、克隆指定分支             git clone -b dev
4、查看状态                 git status
5、提交单个文件             git add index.php
6、提交所有文件             git add -A
7、使用通配符提交           git add *.js
8、提交到仓库中             git commit -m '提示信息'
9、提交已经跟踪过的文件,不需要执行add         git commit -a -m '提交信息'
10、删除版本库与项目目录中的文件               git rm index.php
11、只删除版本库中文件但保存项目目录中文件     git rm --cached index.php
12、修改最后一次提交        git commit --amend


创建版本库

git clone   //克隆远程仓库
git init    //初始化本地版本库

git fetch   //刷新远程分支(当远程创建,本地还没检索到使用)

配置命令

git config --list     //列出当前配置
git config --local --list   //列出Repository配置
git config --global --list  //列出全局配置
git config --system --list //列出系统配置


/**配置用户信息**/
//全局加global ,项目中配置去掉global
git config --global user.email "邮箱" //配置用户邮箱
git config --global user.namel "名字" //配置用户名

alias别名操作

git config --global alias.a add     //表示取a别名代表add 操作
git config --global alias.s status     //表示取s别名代表status 操作

或者去.gitconfig文件中配置alias取别名

工作区操作

git checkout -- [文件/目录所有内容]    //撤销工作区的内容

暂存区操作

git rm --cached xxx.php     //暂存区撤销到工作区(针对第一次入暂存区撤回)
git reset HEAD xx.php       //暂存区撤销到工作区 (针对已提交过commit,第二次后进入暂存区操作)

仓库管理操作

git commit -m '提交'    //提交仓库
git commit --amend      //提交到当前commit日志

git pull    //拉取远程库的内容[默认是推送当前分支同名]
git pull origin lmq //拉取远程库的lmq分支内容
git pull origin lmq:lmq     //拉取最新远程lmq分支到本地lmq分支

git push    //推送内容到远程 [默认是推送当前分支同名]
git push -f     //强制推送(针对合并的时候)
git push origin lmq //推送内容到远程库的lmq分支
git push --set-upstream origin lmq  //本地lmq分支关联远程分支并推送


git remote  add origin [仓库地址]   //添加远程仓库地址(本地关联远程)
git remote -v   //查看远程库
git mremote rm origin //删除远程

缓存(存储)区管理

git statsh          //当前代码缓存起来
git statsh list     //获取所有缓存标识

git stash apply     //恢复缓存区内容(缓存区标识存在)
git stash drop stash@{0} //删除缓存区某个标识(0-代表第一个)

git stash pop (恢复缓存区内容并且删除缓存区)

分支管理

git branch  //查看本地分支
git branch -r   //查看远程分支
git branch -a   //查看本地和远程分支

git checkout <branch-name>  //从当前分支,切换到其他分支
git checkout -b <branch-name>   //创建并切换新建分支
git branch -d <branch-name>     //删除本地分支(本地)
git branch -D <branch-name> //强制删除分支(提交记录并没合并过 -d是删除不了 )

git merge <branch-name>         //当前分支与指定分支合并
git merge --abort               //合并冲突时(merging),取消git合并分支
git branch --merged             //查看哪些分支已经合并到当前分支
git branch --no-merged          //查看哪些分支没有合并到当前分支

git branch -v               //查看各个分支最后一个提交对象信息
git push origin --delete <branch>     //删除远程分支
git branch -m <old-name> <new-name> //重命名分支

git checkout -b 本地分支 origin/远程分支    //拉取远程分支并创建本地分支

git rebase <branch-name>    //衍合指定分支记录到当前分支(不产生分支合并-推荐用)
git rebase --abort  //衍合冲突(rebase)的时候,取消衍合

查看历史记录

git log             //查看提交的日志
git log -1          //查看最近一次提交
git log -p          //查看每一次的变动信息
git log --oneline      //查看日志(简短展示)
git log --oneline -p    //查看文件变动信息(简短展示)
git log --name-only     //查看哪些文件发生了变化?
git log --name-status   //查看文件哪些内容弄变化?(add/save)

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%C(bold blue)<%an>%Creset' --abbrev-commit   //美化后

版本回滚

        --mixed: 暂存区清空,工作区保留 (不删除工作空间改动代码,撤销commit ,并撤销git add 操作)

        --soft: 暂存区保留,工作区保留 (不删除工作空间改动代码,撤销commit,不撤销git add)

        --hard : 暂存区清空,工作区清空 (删除工作空间改动代码,撤销commit ,撤销git add)

//--hard : 回退全部,--mixed:回退部分,包含HEAD ,index, --soft:只回退HEAD
git reset --(soft|mixed|hard) <HEAD ~(num)> |  commit ID


git reset --hard HEAD^ 回退到上个版本
git reset HEAD~1        //撤销前一次的操作
git reset --hard HEAD~3  //回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commitId   //退到/进到,指定commit ,使用这个,需要强推远程 git push origin HEAD --force

git revert HEAD //  撤销前一次 commit
git revert HEAD^    //撤销前前一次 commit
git revert commitId    //撤销指定的版本,撤销也会作为一次提交进行保存

git reflog  //查看你每一次对仓库的操作

    revert与reset不同 revert不会舍弃原来的提交记录,而是生成了一次新的提交。

    reset是撤回到某个指定的版本,而revert则是将某个指定的版本撤销,也就是撤回到指定版本之前的一个版本上。

标签管理

git tag     //列出本地所有标签
git tag <tag-name>  //基于最新提交创建标签
git tag -d <tag-name>   //删除标签

其他命令

//生成zip压缩包
git archive master --prefix='lmq' --forma=zip > lmq.zip   //压缩master分支的内容



        问题汇总:

        问题1:Ping 请求找不到主机 github.com。请检查该名称,然后重试。

        获取Github地址 : 访问 http://github.com.ipaddress.com/#ipinfo

        冷暖自知一抹茶ck

         记下IP地址,有多个IP的话,随便选一个IP就好了。然后添加到host

        问题2: OpenSSL SSL_read: Connection was reset, errno 10054

        $ git config --global http.sslVerify "false"




        参考:

            Git不要只会pull和push,试试这5条提高效率的命令

            


冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论