Git简介git是一个开源的分布式版本控制系统可以有效、高速地处理从很小到很大的项目版本管理。特点速度快简单的设计对非线性开发模式的强力支持允许成千上万个并行开发的分支完全分布式有能力高效管理类似Linux内核一样超大规模的项目速度和数据量Git工作流程图命令如下clone克隆从远程仓库中克隆代码到本地仓库。checkout检出:从本地仓库中检出一个仓库分支然后进行修订。add添加在提交前先将代码提交到暂存区。commit提交提交到本地仓库。本地仓库中保存修改的各个历史版本。fetch(抓取)从远程库抓取到本地仓库不进行任何的合并动作一般操作比较少。pull(拉取从远程库拉到本地库自动进行合并(merge)然后放到到工作区相当于fetchmerge。push推送修改完成后需要和团队成员共享代码时将代码推送到远程仓库。Git获取本地仓库在任意一个文件夹中打开Git Bash窗口然后输入git init并执行出现.git隐藏文件则创建成功。Git常用基础命令文件忽略列表一般我们总会有些文件无需纳入Git的管理也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件比如日志文件或者编译过程中创建的临时文件等。在这种情况下我们可以在工作目录中创建一个名为.gitignore 的文件文件名称固定列出要忽略的文件模式。操作在工作目录下创建一个.gitignore文件在里面写上无序Git管理的文件模式例如*.a就是以.a结尾的文件基础操作1、add添加工作区到暂存区git add 文件名/通配符2、commit提交暂存区到本地仓库git commit -m 注释内容3、status查看修改的状态git status4、log查看提交日志git log 选项–all显示所有分支–prettyoneline将提交信息显示为一行–abbrev-commit使得输出的commitld更简短–graph以图的形式显示5、reflog查看删除的日志git reflog可以看到已经删除的提交记录6、reset版本切换git reset --hard commitidcommitid可以查看通过日志查看**PS**对于一些比较长的命令可以在~目录下创建一个.bashrc文件在文件中定义命令的别名例如aliasgit-loggit log --prettyoneline --all --graph --abbrev-commitaliasllls -al之后在你的工作目录下执行source ~/.bashrc分支操作1、branch查看/创建/删除本地分支git branchgit branch 分支名git branch -vv显示的更加详细例如关联关系不能删除当前分支只能删除其他分支git branch -d 其他分支名删除分支时需要做各种检查git branch -D 其他分支名删除分支时不做任何检查强制删除2、checkout切换分支git checkout 分支名git checkout -b 分支名创建并切换到一个不存在的分支3、merge合并分支一个分支上的提交可以合并到领一个分支git merge 分支名合并冲突当两个分支对同一个文件的数据修改存在冲突时需要手动处理冲突。处理文件中冲突的地方将解决完冲突的文件放到暂存区(add)提交到仓库(commit)分支应用流程Git远程仓库使用远程仓库1、remote添加/查看远程仓库git remote add 远端名称 远程仓库路径远端名称默认是origin示例git remote add origin https://github.com/6moran/git_test.gitgit remote查看远程仓库git remote -v查看远程仓库详细。2、push推送到远程仓库git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名]]如果远端分支名和本地分支名相同只写本地分支名即可。-f强制覆盖--set-upstream推送到远端的同时并且建立起和远端分支的关联关系一般第一次推送时使用如果当前分支已经和远端分支关联则可以省略分支名和远端名直接git push将master分支推送到已关联的远端分支。3、clone从远程仓库克隆git clone 仓库链接 [本地目录名称]仓库链接如下4、fetch从远程仓库抓取到本地不会进行合并git fetch [remote name] [branch name]如果不指定远端名称那么抓取所有分支。5、pull从远端仓库拉取到本地并自动合并git pull [remote name] [branch name]相当于fetchmerge如果不指定远端名称和分支名则拉取所有并更新当前分支。Git使用铁令切换分支前先提交本地的修改。代码及时提交提交过了就不会丢。遇到任何问题都不要删除文件目录。