git笔记
git基本操作 1.git init命令:初始化一个Git仓库 (类似于创建一个快照)在本地执行,创建一个本地Git 仓库 执行完git init命令后,Git仓库会在项目目录中生成一个.git目录,该目录包含Git需要的的所有资源和数据,其他的项目目录保持不变. 用法: 1.使用当前目录作为Git仓库,我们直接执行 git init 2.使用指定目录作为Git仓库,git init 目录名 2.git add命令:(在本地Git仓库中使用 将快照的内容写入缓存区(只要使用过git add的文件之后,这个文件之后修改就默认直接写入缓存区了))将文件纳入git的版本控制,告诉Git开始对这些文件进行跟踪, 用法: 支持正则表达式 1.将所有文件纳入Git的版本控制, git add . 2.将特定文件纳入Git的版本控制, git add 文件名 3.git commit -m "注释"命令:(在本地Git仓库中使用 将缓存区内容添加到仓库中,未用git add追踪过的文件不能添加到github仓库上)将git add追踪的文件提交到github的Git仓库中 Git为你的每一个提交都记录你的名字和邮箱地址,所以第一步需要配置用户名和邮箱地址 git config --global user.name "用户名" git config --global user.email "邮箱" 4.git clone命令:从现有的github上的Git仓库中拷贝项目到本地目录的git仓库(类似于svn checkout) 用法:git clone <repo> <directory> 必须参数:repo Git代码仓库的url 可选参数:directory 拷贝到哪个目录中去 eg:git clone git://github.com/shcacon/grit.git 在当前目录下自动创建一个grit(Git仓库名字)的目录,保存项目 eg:git clone git://github.com/shcacon/grit.git mygrit 把项目拷贝到mygrit目录中去 5.git 基本操作: git add aaa #让本地git仓库追踪管理aaa文件 git status (-s) #git status命令: (-s 参数显示简略信息,否则显示完整信息)查询项目在上次提交后是否有修改,没有的话没有提示 6.git reset HEAD -- 文件名:取消之前的git add命令(将文件写入缓存区),让文件不能加入缓存区,未加入缓存区,当使用git commit时,也不能提交到github上 所以本命令的作用是:取消已缓存的内容,将缓存区恢复到之前的样子 7.git rm 文件名:将文件从缓存区中移除 默认情况下,会将文件从缓存区和工作目录中删除 git rm --cached 文件名 将文件保存在工作目录中,只从缓存区中删除 8.git mv 文件名:重命名(和linux一样) eg:git mv re re.md 将re文件重命名为re.md 9.git分支管理 重点 可以在不同分支做不同的事情,互不影响,类似于快照 同理git init 创建的默认是主分支master 1.git branch 分支名 #创建(本地)分支命令 2.git checkout 分支名 #切换分支命令 Git用该分支的最后提交的快照替换工作目录中的内容 所以多个分支不需要多个目录 3.git checkout master #切换到主分支 4.git merge 分支名:合并分支到主分支的命令 5.git branch #列出在本地Git仓库的分支 一种重要用法:再修改前创建一个分支,这样就相当于保存了之前的一个快照状态 10.git branch -d 分支名:删除分支 11.git log #查看历史提交记录 git log --author=Linus --online -5 12.git remote add origin url #添加远程仓库(eg:github) 由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:使用以下命令生成SSH Key: 本地 本地 本地 远程 git的组成: 本地目录 索引(缓冲区) HEAD 远程git仓库 git init git add git commit git remote add origin url #添加远程GitHub仓库 git push origin 分支 #将HEAD中的修改提交到GitHub上去 gitk:内建化的图形git