GIT学习笔记

笔记整理自廖雪峰老师Git教程git

建立本地版本库

一、 建立版本库app

`git init`

二、 把文件添加到仓库(从工做区到暂存区)spa

`git add readme.txt`
`git add .`

三、 把文件提交到仓库(从暂存区到当前分支)指针

`git commit -m 'commit'`

添加到远程库

四、 添加一个远程库:生成 http://xxx.gitcode

五、 要查看远程库的信息,用git remote,或者,用git remote -v显示更详细的信息orm

六、 关联已有的本地仓库blog

`git remote add origin xxx.git`  (origin是远程库的名字)

七、 把本地库的全部内容推送到远程库上,把当前分支master推送到远程排序

第一次推送master分支,加上-u参数,把本地的master分支和远程的master分支关联起来
`git push -u origin master` 

把本地的修改提交到远程的master分支
`git push origin master`

若是咱们只有一个master分支,就能够直接:
`git push`

从远程库拉取项目

八、 要克隆一个仓库,首先必须知道仓库的地址,而后使用git clone命令克隆教程

`git clone http://xxx.git`

熟练使用以上步骤就能够愉快的使用git了,可是想要更进一步,还须要往下看:rem

工做区和暂存区

工做区就是你本地的项目文件夹,版本库是工做区里的.git文件。

Git的版本库里存了不少东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为咱们自动建立的第一个分支master,以及指向master的一个指针叫HEAD

咱们使用git提交能够看为三步:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的全部内容提交到当前分支;
第三步是用git push把本地分支中的修改提交到远程库
工做区和暂存区

其余操做

九、HEAD指向的版本就是当前版本, Git容许咱们在版本的历史之间穿梭,使用命令git reset --hard commit_id
十、穿梭前,用git log能够查看提交历史,以便肯定要回退到哪一个版本, 用git log --graph命令能够看到分支合并图
十一、要重返将来,用git reflog查看命令历史,以便肯定要回到将来的哪一个版本

十二、git status查看版本库状态
1三、用git diff HEAD -- readme.txt命令能够查看工做区和版本库里面最新版本的区别
1四、git checkout -- file能够丢弃工做区的修改(用版本库里的版本替换工做区的版本)
1五、用命令git reset HEAD <file>能够把暂存区的修改撤销掉,从新放回工做区
1六、命令git rm用于删除一个文件

1七、查看分支:git branch
1八、建立分支:git branch <name>
1九、切换分支:git checkout <name>
20、建立+切换分支:git checkout -b <name>
2一、合并某分支到当前分支:git merge <name>
2二、删除分支:git branch -d <name>
2三、若是要丢弃一个没有被合并过的分支,能够经过git branch -D <name>强行删除

2四、Git还提供了一个git stash功能,能够把当前工做现场“储藏”起来,等之后恢复现场后继续工做
2五、用git stash list命令查看保存的工做区
2六、用git stash apply恢复工做现场,可是恢复后,stash内容并不删除
2七、用git stash drop来删除stash内容
2八、用git stash pop,恢复的同时把stash内容也删了

2九、本地新建的分支若是不推送到远程,对其余人就是不可见的,
30、从本地推送分支,使用git push origin branch-name,若是推送失败,先用git pull抓取远程的新提交
3一、在本地建立和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
3二、创建本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
3三、从远程抓取分支,使用git pull,若是有冲突,要先处理冲突

3四、git rebase操做能够把本地未push的分叉提交历史整理成直线;
3五、git rebase的目的是使得咱们在查看历史提交的变化时更容易,由于分叉的提交须要三方对比

3六、命令git tag <tagname>用于新建一个标签,默认为HEAD,也能够指定一个commit id
3七、命令git tag -a <tagname> -m "blablabla..."能够指定标签信息
3八、命令git tag能够查看全部标签,标签不是按时间顺序列出,而是按字母排序的
3九、能够用git show <tagname>查看标签信息,能够看到说明文字
40、命令git push origin <tagname>能够推送一个本地标签;
4一、命令git push origin --tags能够推送所有未推送过的本地标签;
4二、命令git tag -d <tagname>能够删除一个本地标签;
4三、命令git push origin :refs/tags/<tagname>能够删除一个远程标签。

4四、忽略某些文件时,须要编写.gitignore;
4五、.gitignore文件自己要放到版本库里,而且能够对.gitignore作版本管理!
4六、被忽略的文件,能够用-f强制添加到Git
4七、能够用git check-ignore命令检查.gitignore哪一个规则写错了

配置别名

4八、配置别名:git config --global alias.st status,--global参数是全局参数,也就是这些命令在这台电脑的全部Git仓库下都有用

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

4九、每一个仓库的Git配置文件都放在.git/config文件中,能够手动修改配置,别名就在[alias]后面,要删除别名,直接把对应的行删掉便可,而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中

git命令总结

远程拉取版本库

git clone http://xxx.git
cd xxx

建立新版本库

git init
git remote add origin http://xxx.git

提交更新

git add .    //git rm xxx
git commit -m "Initial commit"
git push //-u origin master
相关文章
相关标签/搜索