1.安装git
linux上使用sudo apet-get intall git 命令即可
window上从官网上下载安装程序,在开始菜单找到Git Bash,打开,输入命令进行配置
$ git config --global user.name "Your Name" 与GitHub上相同,该名字会显示在提交上 $ git config --global user.email "email@example.com" 同上
$ git config --list 查看所有配置
找到一个空目录,使用 git init 命令将当前目录变为git仓库
2.文件提交
创建一个新文件 demo.txt,先将文件添加,在提交
git add demo.txt
git commit -m "写入你的注释"
3.回退版本
git status 查看当前状态
git diff 查看具体修改什么内容
git log 查看提交历史
git reset --hard 历史版本id,可以是前几位
4.暂缓区
当我们使用add命令,此时会将文件放到一个暂缓区,就是用来存放临时的提交文件,而命令status就是查看的暂缓区的状态,使用提交命令后,暂缓区清空,并将文件提交到当前分支。
diff 命令就是讲工作区和暂缓区进行比较。
5.其他命令
git checkout -- file 用来放弃修改, -- 很重要,表示当前分支,没有的话,就是其他分支了,当删除了文件,也可以进行恢复
git rm file 删除一个文件后,需要使用该命令将工作区里的文件删除,或者使用git add file效果同样
git rebase rebase操作可以把本地未push的分叉提交历史整理成直线,便于比对
6.使用gitHub(git创建项目的俩种方式)
使用命令生成公钥和私钥
终端输入 ssh-keygen -t rsa -C "username" (注:username为你git上的用户名) 必需的
使用cd ~ 切换到家目录
将本地文件与远端同步:
cd .ssh/.pub 找到以pub结尾的文件,这是公钥,打开将其中字符复制到GitHub中生成公钥
看本地的.git/config设置的仓库url地址和github使用的链接地址是否一致,如use https,则url需要用https的仓库地址
git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master 第一次向空仓库中推送是,需要使用 -u ,以后就不需要了
从GitHub克隆项目:
使用git clone 地址, 可以是SSH或者是https,克隆好就可以进行提交
7.设置GitHub个人站点
新建仓库,仓库名名:用户名+github.io,新建首页index.html,然后通过https:用户名+github.io/index即可访问首页。首页只能是静态页面。
8.分支管理
在Git里,有个主主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。当我们新创建了一个分支,并切换到了分支上,那么Head就指向当前的分支。进行合并的时候,将master指向当前分支,即可合并。
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
分支冲突:当俩个分支中的内容发生冲突时,此时需要我们手动进行解决。
通过git status可以查看冲突文件。查看冲突文件,有>>> 或 ===或<<<等符号是为了标记不同分支的内容。通过协商,将文件修改为最终内容,在进行提交就可以了。
git log --graph 可以查看分支合并图
当我们在编写某功能时,出现bug,可以创建bug分支来修复bug。
创建分支:修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后创建分支修复bug,修复后合并分支并删除,再git stash pop,回到工作现场。git stash list 可以查看
9.多人协作
远程仓库默认是origin
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
10.创建标签
命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id
命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
命令git tag可以查看所有标签
命令git show tagname可以查看该标签下的所有提交
11.自定义git
忽略提交某些文件,可以在根目录下创建文件.gitignore文件添加忽略项。可以参考这个https://github.com/github/gitignore