91Linux - 提交
type: channel
link: https://91linux.org/tag/%E6%8F%90%E4%BA%A4/
items: git常用命令记录

git常用命令记录
type: item
date: 2020-04-13T12:48:00+08:00
description: git是程序员中最常用的版本控制工具，学会git的基本使用是十分重要，特别是在公司里面的协同开发，废话不多说，下面贴出常用的命令。1.基本配置既然git是多人协同的工具，别人要看到你提交代码的同时当然也得知道你是谁。那么第一步的配置当然是报上你的名字以及你的联系方式邮箱，可以通过以下的方式去进行配置。git config --global user.name "Your Name" git config --global user.email "email@example.com" 如果要涉及推送到远程仓库的推送，你需要把你的ssh公钥挂到所在的远程服务器上。不然没有权限push代码，公钥的生成可以使用以下命令,然后一直按enter就好了，最后把公钥放到你的服务器上面。ssh-keygen -t rsa -C "email@example.com" 2.工作区工作区就是我们平常代码存放的所在的目录，如何在代码上的修改，都会首先在工作区看到。1.创建版本库（init）直接在你需要代码管理的目录新建git版本库git init 2.克隆远程项目（clone）然而事实如果在实际工作中，我们并不会经常创建版本库项目，而是拉取别人的项目进行协同开发。后面的参数为项目的ssh链接git clone "coder@example.git" 3.查看提交情况（status）想知道当前提交了文件没有？或者提交了哪些文件，或是否是最新分支git status 4.撤销工作区文件的修改（checkout）感觉自己搞砸了代码文件，想还原全部修改的文件（不能撤销新增文件）git checkout .其实checkout的作用远不止如此，更多是签出（移动到）到其他分支或者其他提交节点，后面还会有介绍5.清除新增的文件（clean）和上面的命令可以做到完全撤销全部修改git clean -df 3.缓冲区缓冲区的作用类似于商场的购物车，我们的代码文件就像商场的商品，我们只会放入我们想要的商品（想提交的代码文件）到购物车（缓冲区），期间我们可能还会对购物车里的商品进行筛选，或者新增商品，最后再把全部购物车里面的商品一次性地拿去结账（全部缓冲区文件提交到版本库）。1.提交文件到缓冲区（add）提交一个文件git add filename提交全部文件git add --all 2.撤销缓冲区的修改（reset）不小心把不想提交的文件add到缓冲区可以使用下面的命令还原缓冲区git reset HEAD 3.对比工作区的文件和缓冲区文件（diff）git diff <文件名> 4.版本库版本库会记录git提交的历史记录，其重要作用不容置疑！我们可以通过版本库查看历史提交的信息（包括提交人，提交日期，提交的文件的内容），回滚代码，比对不同版本库的文件的不同。1.把缓冲区的修改提交到版本库（commit）养成良好的代码习惯，后面信息提示最好还是要写上的git commit -m "提交的信息提示"2.查看版本库提交记录（log）你可能想查看最近的全部版本库更新情况git log或者你只想查看某个分支的提交记录git log BranchName某个文件被修改了，想查看该文件的修改历史或文件夹下的文件修改git log filename git log dir查看的日志可能会很多，你可以按q退出日志的查看3.版本回滚（checkout）可能你觉得当前这个版本有点问题，想回到以前的版本通过上面的git log可以查看历史提交版本库的哈希码，也就是该版本库的唯一标示git checkout <哈希码> 5.分支管理分支是git里面很重要的一个概念，在协同开发中，往往包含很多个分支，每个开发中的不同的功能的代码可以提交到不同的分支上，这样各个功能之间的开发互不影响，整个系统开发完成之后再去进行分支之间的合并，这样就可以拥有全部分支的功能。1.创建新的分支（branch）注意新的分支在刚刚创建出来的时候代码内容和原来所在的分支是一样的创建新的分支git branch <分支名>创建新的分支并转到该分支（更常用）checkout -b <分支名> 2.列出所有分支git branch 3.切换分支（checkout）git checkout <分支名> 4.删除分支如果分支已经被合并了或者没有测试的价值，可以考虑删除该分支（仅仅少点分支看着顺眼）git branch -D <分支名> 5.合并分支（merge）分支最重要的作用！这个命令是当前分支合并参数里的分支（合并之后当前分支还是原来的分支，例当前是branch1，合并branch2之后变成还是处于branch1）合并最麻烦的事情就是可能会产生冲突，具体解决冲突的方法可以参考百度，这里不累赘。git merge <被合并的分支…