GIT的使用介绍

简介


  • GIT是一个分布式版本控制软件,2005年发布。

  • 之前的版本控制工具: CVS、Subversion、SVN。

  • 通过GIT进行版本控制的源代码托管服务的主流网站有Github、Gitlab、Bitbucket。

  • 国产的托管平台有:码云,coding。

  • git工具:命令行,编辑器集成,github客户端等方式。

Git很强大,也很简单。全部命令非常多,但完成日常工作只需要掌握 极其少数的命令即可。其他的可以在工作中遇到调整再去学习。建议初学者使用命令行操作, 使用客户端仅查看变化以便理解git的作用。

安装

  • GIT客户端
  • Mac用户安装XCode之后执行GIT命令会提示安装

作用

  • GIT的作用主要有两个:文件管理,多人协作。

文件管理:GIT在不断的备份文件(GIT内部实际上使用的是diff存储每次的更改而不是真正的备份全部)。
多人协作:GIT通过代码合并,分支管理等功能让多名参与者同时开发项目。

核心概念


  • workspace 工作区

  • stage 暂存区

  • repository 本地仓库

  • remote 远程仓库

Mo icon

总的来说分为远程仓库和本地仓库,远程仓储用来储存项目的最新代码,本地仓储用来个人开发,个人可以从远程pull最新的代码,也可以将自己修改的代码push到远程仓储。

术语


单词 释义 单词 释义
repository 版本库 branch 分支
checkout 撤销 reset 重置
log 日志 merge 合并
stash 隐藏 drop 放弃
push 推送 pull

GIT常用命令


安装和配置
  • git help :git子命令和核心概念一览表

    • git help [subcommand]:查看指定git子命令的简介
  • git config

    • git config --list 查看git配置列表
    • git config -e [--global] 查看编辑git配置文件
    • git config user.name "YOUR_NAME" 查看/设置用户名(当前项目)
    • git config user.email "YOUR_EMAIL" 查看/设置用户邮箱(当前项目)
    • git config --global user.name "YOUR_NAME" 查看/设置用户名(全局)
    • git config --global user.email "YOUR_EMAIL" 查看/设置用户邮箱(全局)
  • vim ~/.gitconfig:git配置文件

拉取项目
  • git clone [URL]

    作为一个初学者可以去github上面新建一个账号,随意折腾。

文件操作
  • git add .

  • git add [file1] [file2]

  • git add [dir1] [dir2]

  • git rm:删除文件或文件夹

  • git rm .

  • git rm [file1] [file2]

  • git rm --cached [file1] [file2] 从版本控制中移除但保留文件

  • git mv:重命名

    • git mv [file1] [file2]

很多人误认为git add . 中的 . 是所有的意思。其实, . 指的是相对路径,即当前目录的意思。

提交代码
  • git commit :提交指定文件或者目录到本地仓库
    • git commit - m ’注释‘
    • git commit [file] [folder] -m ‘注释’
    • git commit -am ‘注释’ 提交工作区自上次commit之后的变化,直接到仓库区
    • git commit -amend -m [message] 使用一次新的commit,替代上一次的提交
撤销
  • git checkout

    • git checkout .
    • git checkout [file1] [file2]
    • git checkout [commit_id] [file]
  • git reset

    • git reset [file1] [file2]
    • git reset --hard
    • git reset [commit_id]
    • git reset --hard [commit_id]
隐藏
  • git stash
    • git stash
    • git stash list
    • git stash pop
    • git stash prod

tip:很容易忘记你隐藏了什么,慎用~

查看信息
  • git status

  • git diff

    • git diff :显示本地工作区和远程工作区的差异
    • git diff [file] : 本地仓储指定文件和远程仓储的指定文件的差异
  • git log

    • git log :显示commit历史
    • git log --stat :显示commit历史应每次commit所变更的文件
    • git log -p [files] :显示指定文件每次commit的diff
    • git log -[number] --pretty --oneline:显示最近number次的log
  • git show

    • git show [commit_id] :显示指定commit_id的diff
    • git show [commit_id] [file] :显示指定commit_id下指定文件的diff
分支
  • git branch

    • git branch :显示本地分支列表
    • git branch -r :显示远程分支列表
    • git branch -a :显示本地+远程仓储的分支列表
    • git branch [branch_name]:新建分支,不切换分支
    • git branch [branch_name] [commit_id]:新建分支,并指向指定commit_id
    • git branch -d [branch_name]:删除分支
  • git checkout

  • git checkout [branch_name] :切换到指定的分支

  • git checkout -b [branch_name] :新建分支并且切换到该分支

  • git checkout - :切换到上一次所在的分支

  • git cherry-pick

    • git cherry-pick [commit_id] : 将其他分支的commit提交到当前分支
  • git merge

    • git merge [branch_name] : 合并指定分支到当前分支
远程同步
  • git pull
    • git pull [remote] [branch_name] :拉取远程库中的指定分支与本地分支合并
  • git push
    • git push origin [branch_name] :把当前分支与远程分支合并

远程仓库(即remote)的名字一般都是 origin

参考资料


此文章为作者在学习过程中的总结,用来分享学习。如有错误还请指出。谢谢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分是文档,为了日后查看方便放到了前边[可能敲错了,详见阮一峰老师的文章]http://www.ruanyif...
    白璞1024阅读 1,088评论 0 49
  • 昨天在同事电脑上操作了一把cherry-pick代码,发现很多功能不用,就慢慢忘记了,梳理了下流程图: git c...
    gogoingmonkey阅读 701评论 0 0
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,740评论 4 54
  • 这蒙蔽双眼的现世的郁郁葱葱! 若烈火焚过的大地上黄草仍旧丛生, 我愿废墟中也探出野花新鲜的骨朵。
    鹘鵃阅读 519评论 1 16
  • 文:‖18歲的小仙女 上週日和姚老師以及一大群坐在迎檢的辦公室裡暢談。突然說著說著,所有人安靜了。 “尷尬了,突然...
    姜姜姜小满阅读 214评论 0 1