git开发实战:认识git

git简介: 

  git是分布式版本控制系统,相比较svn相比,git会在本地保存完整的提交记录,即使远程服务器宕机数据消失,可以将本地分支提交到远程服务器,本地分支会保存完整的记录。只要文件提交到git中,就能保证这个文件永远不会丢失,可以根据提交id来找到这个文件。

    git上每次提交记录会记录上次提交的id,git是保存和当前提交文件和前一个提交文件对比,来保存,这样减少保存的空间。

    git的文件状态分为3中:

        已修改--已修改文件是保存在当前工作区,

        已暂存--将工作区修改的文件保存到缓存区中

        已提交--将缓存区中的文件提交到对象库

    git设置用户名可以分为3中,分别是全局、用户和本项目,在具体项目中使用哪个用户优先的优先级逐渐降低

        针对系统:git config --system user.name 'system name'

        针对用户:git config --global user.name 'global name'

        针对项目:git config --local user.name 'local user'

git简单命令

    1. git init 初始化本地仓库

    2. git add .  将工作区修改的文件保存到缓存区中 git add hello.txt

    3. git commit 将缓存区中的文件添加到对象库  git commit -m '添加hello.txt文件'

       git reset --hard commit 回退到commit位置  ,在推送远程分支  git push -f 因为远程分支比本地分支commit提前,所以要强制推送,丢失commit后的提交

       git revert -n commit,反做commit版本,不会影响后面操作  git commit -m "revert add text.txt"  git push 提交并推送,只丢失

          revert相当于逆向操作,回退到上一步commit的内容

    4. git status 查看文件状态

       git rm hello.txt 删除文件  rm hello.txt删除文件

    5. git rm --cached hello.txt  将添加到缓存区中的hello.txt文件回退到工作区

    6. git HEAD hello.txt  另外一种将缓存区的文件回退到工作区

    7. git  log 查看提交日志 git log -2 查看最近两次提交日志

        git log pretty=online 日志以一行显示

        git log --graph 以图型化显示提交记录

        git reflog 记录所有的操作日志

    8. git branch 查看所有分支

        git branch newbranch 创建新分支

        git checkout newbranch 切换到新分支

        git checkout -b  newbranch2 新建并切换分支

    9. git merge newbranch 将newbranch分支内容合并到本分支上

        git merge --no-ff dev  以提交的方式合并分支

        合并时如果new分支内容高于现在分支的内容,即new分支在本分支基础上还有提交,这时将采用fast ford快速合并

        合并时如果不是上面的情况,可能会存在冲突,当冲突时,需要手工解决冲突

    10. git branch -m dev1 devlop  将dev1分支修改为devlop

    11. git stash 保存当前分支修改的内容临时保存

        git stash list 列出stash内容

         git stash pop 先恢复,再将已恢复的stash删除

         git stash apply 恢复stash,但不删除

         git stash drop stash{0} 删除stash0

         git stash -m '设置保存当前stash备注'

    12. 标签

        git tag v1.0

        git tag v2.0 -m '这时带有注释的标签'

        git tag -d v1.0 删除v1.0标签

        git tag 列出所有标签  git tag -l ‘*2’  列出标签结尾是2的所有标签

    13 diff

        git diff 比较工作区和缓存区文件之间不同

        git diff HEAD 比较工作区和最近一次提交文件的不同
        git diff -cached 比较最新提交和缓存区文件不同

    14 git pull git push

        git remote add origin git地址

        git push -u origin master  推送

        git pull 拉取最新分支,git fetch+git merge

        git push 推送最新分支,git fetxh+git merge

        git remote show 显示远程分支   git remote show origin 详细显示origin分支

        git同一个分支会存在3份,分别是本地分支,本地远程分支(远程分支,只读),远程分支,

              在pull时,首先将远程分支的最近一次提交id同步给本地远程分支,然后后本地远程分支和本地分支合并(可能会产生冲突),提交时也是这样。

    15. 将本地分支推送到远程分支上

        git push origin src:desc 将本地的src分支内容,推送到远程desc分支

        git push origin :desc 将空分支推送到远程,远程分支被删除

        git push origin --delete dev 删除分支

        git push --set-upstream origin dev1:dev2 将本地的dev1分支创建到远程的dev2分支上

    16 远程分支修改名字只能先删除分支,再将本地分支推送大远程分支上

    17 建议本地分支和远程分支名一致

 

posted @ 2019-08-20 22:21  i孤独行者  阅读(310)  评论(0编辑  收藏  举报