网上关于Git比较好的一篇教程有:http://www.bootcss.com/p/git-guide/css
Git在提交以前撤销add操做html
使用Git 以前,有时由于忘记添加.gitignore文件,因此使用git add 添加了不应进入版本库的文件,这时因为尚未commit到Head,因此不能使用git reset Head命令,能够经过如下命令来撤销操做:node
撤销所有add的文件 git rm -r --cached . 撤销test文件夹中的所有文件 git rm -r --cache test/ 撤销添加的文件 git rm --cached file
Git 在提交以后的撤销操做git
#Git有两种方式来撤销提交以后的操做,一种是git revert,另一种是git commit. git revert是生成生成一个新的commit 来撤销某次操做,这次以前的commit都会被保留 git reset 是回到某次提交,提交及提交以前的commit 都会被保留,可是这次以后的修改都会被退回到暂存区。 举个例子,例若有两个commit,以下: commit2: 添加file2 commit1: 添加file1 1 执行 git revert HEAD~1 ,执行 git log时,能够看到,这里HEAD~1表明着上一次提交,若是是HEAD~2,表明着上两次提交。 revert "commit2":this reverts commit 234$f.... commit2: 添加file2 commit1: 添加file1 2 git reset 有三个选项能够选择 --soft 默认,执行 git reset --soft HEAD~1以后,执行git log,此时commit2提交的文件是在暂存区中, 待提交 --mixed 执行 git reset --mixed HEAD~1以后,执行git log,此时commit2 提交的文件显示未添加 --heard 执行 git reset --hard HEAD~1以后,执行git log,此时commit2 所有被撤销,提交的文件也被取消
Git 添加.gitignore文件忽略文件github
在仓库目录下添加.gitignore文件, Git会能够自动忽略该目录及目录如下子目录的对应的文件。文件里面的内容以下:bash
以#开始的行,被视为注释 #忽略tt.txt tt.txt #忽略全部的html文件 *.html #忽略.o和.t后缀的文件 *.[ot] #忽略nodemodules文件夹 nodemodules
Git的forkide
有时咱们想在别人项目的基础上进行开发,Git为咱们提供了fork的功能,能够fork其它人的代码,而后进行开发。fetch
下面,咱们以https://github.com/CntChen/edudemo为例,来演示如何进行fork以后再merge的操做。ui
首先进入Github的该项目,而后点击该项目右上角的fork 而后在本身的项目库中,将fork到的项目克隆到本身的本地项目中 git clone https://github.com/thomaslwq/edudemo.git 当你fork到本地的时候,会有一个默认的origin的远程链接名,它指向你帐户下的远程仓库。 而后你能够将原仓库也链接到本地目录下来。若是之后原仓库有任何改动,那么你就能够将原仓库的改动fetch下来, 而后进行更新。 git remote add remote_edudemo https://github.com/CntChen/edudemo.git 这样,你本地就多了一个其它人的远程仓库,而且它的别名是remote_edudemo git fetch remote_edudemo //拉取原远程库的最新更新 git merge remote_edudemo master //合并到当前仓库 而后提交修改 git add "README.md" git commit -m "添加修改文件" git push origin master 到目前为止,咱们已经把修改推送到本身fork以后的仓库,可是咱们若是想将改动推送到原做者仓库, 就须要回到本身fork项目的界面,点击Pull Request,而后发送合并请求,原做者收到请求以后, 就会根据实际状况选择是否合并代码到当前项目中。 注意:若是合并原仓库代码时出现冲突,那么以后合并冲突以后从新提交就可。
经常使用操做this
GIT-FORK项目后与原项目进行同步
http://www.cnblogs.com/dubuqingfeng/p/201503-git-fork-synchronized.html