git add test                    添加单个文件test

git add test1 test2 test3   多个文件可以用空格来隔开

也可以使用git add -A添加所有的文件

git commit -m "Test change"   提交到本地版本库     -m 是指定提交信息,必填项目 。“ Test change ” 是此次的提交的说明。

git commit --a,对本地所有变更的文件执行提交操作,包括对本地修改的文件和删除的文件,但是不包括未被版本库跟踪的文件。但是这个命令最好不要使用,这样会丢掉Git暂存区带给用户的最大好处:对提交内容进行控制的能力

  1. 怎样恢复到历史版本( reset )?

    使用 git log 查看更改记录,记住其中的 commit 版本号,然后,运行 git reset <log> --hard 即可( <log> 即 commit 版本号)。另外, git reset HEAD 可以恢复到上一个 commit 版本。

    如果只是想把更改状态切换到某一个历史记录,那么,可以 git reset <log> 这样,文件不会恢复到历史版本,但是,在这个记录后修改的文件会被标记为已修改,但未添加修改记录里。

分支操作:

git branch                     查看本地分支

git branch -a                 查看所有分支包括本地和远程分支

git branch -v                 查看所有分支最后一次提交

git branch test              创建test分支

git branch -d                删除分支

git branch -D                强制删除分支

 

切换分支操作:

git checkout test            切换到test分支上去

git checkout -b test       创建新的分支test,并切换到test分支上,-b就是branch

git push origin gruntTest 上传本地当前分支到远程的gruntTest分支

 

git push origin test:master  提交本地分支test 作为远程master分支

 

git rebase master         更新master分支上的东西到该分支上

先切换到master分支上然后再更新test分支上的东西到master上

git checkout master 

git rebase test

 

 查看提交历史操作

git log                        查看提交历史

git log -p                    查看提交历史并列出修改内容

git log --stat               显示被提交的文件名

git blame fileNme |grep xxx_notify  查看某行代码的提交历史(比如fileName文件中的xxx_notify()函数)

 

获取最新代码

可以先从github上,在项目所在的主分支上(比如:master)合并代码到自己的分支上(gruntTest),然后在pull代码

先checkout到自己的分支上,然后再执行git pull。

或者是如下方法:

git pull = git fetch + git merge

git fetch     是下载服务器代码到本地,但是不会自动合并。

将branch2上的代码合并到branch1上:

git checkout branch1

 

git merge branch2 

 

提交代码的操作

代码提交

代码提交一般有五个步骤:

1.查看目前代码的修改状态

2.查看代码修改内容

3.暂存需要提交的文件

4.提交已暂存的文件

5.同步到服务器

1.     查看目前代码的修改状态

提交代码之前,首先应该检查目前所做的修改,运行git status命令

a)        已暂存 (changes to be committed)

new file //表示新建文件

modified //表示修改文件

deleted //表示删除文件

b)       已修改 (changed but not updated)

modified //表示修改文件

deleted //表示删除文件

另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout --

c)        未跟踪 (untracked files)

 

2.     查看代码修改的内容

 git diff  <file>

比较某文件与最近提交节点的差异。

注意:如果该文件已暂存,那么应该使用git diff –cached<file>
 

 git diff <hashcode> <hashcode>  <file>

比较某文件在提交节点a,节点b的差异。

技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符)

 

3.     暂存需要提交的文件

如果是新建的文件

则git add  <file>


如果是修改的文件
则git add  <file>

如果是删除的文件
则 git rm  <file>

 

4.     提交已暂存的文件

git commit

注意注释填写规范。

git commit --amend

修改最近一次提交。有时候如果提交注释书写有误或者漏提文件,可以使用此命令。

 

5.     同步到服务器

同步到服务器前先需要将服务器代码同步到本地

命令: git pull

如果执行失败,就按照提示还原有冲突的文件,然后再次尝试同步。

命令:git checkout -- <有冲突的文件路径>

同步到服务器

命令: git push origin  <本地分支名>

如果执行失败,一般是没有将服务器代码同步到本地导致的,先执行上面的git pull命令。

 

git add -A = git add . + git add -u

  • git add -A stages All
  • git add . stages new and modified, without deleted
  • 是把本地的所有文件添加到repository中,除了已经删除的文件
  • git add -u stages modified and deleted, without new

 删除文件

"git rm" 和 "rm" 的区别

FEB 3RD, 2013 | COMMENTS

这是一个比较肤浅的问题,但对于 git 初学者来说,还是有必要提一下的。

用 git rm 来删除文件,同时还会将这个删除操作记录下来;
用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除。

直观的来讲,git rm 删除过的文件,执行 git commit -m "abc" 提交时,
会自动将删除该文件的操作提交上去。

而对于用 rm 命令直接删除的文件,执行 git commit -m "abc" 提交时,
则不会将删除该文件的操作提交上去。
不过不要紧,即使你已经通过 rm 将某个文件删除掉了,
也可以再通过 git rm 命令重新将该文件从 git 的记录中删除掉,
这样的话,在执行 git commit -m "abc" 以后,也能将这个删除操作提交上去。

如果之前不小心用 rm 命令删除了一大批文件呢?
是的,此时用 git rm 逐个地再删除一次就显得相当蛋疼了。
所幸还有更方便的处理方案,用如下的方式做提交就没有问题了: git commit -am "abc"

总结一下:

在被 git 管理的目录中删除文件时,可以选择如下两种方式来记录删除动作:
一、rm + git commit -am "abc"
二、git rm + git commit -m "abc"
另外,git add . 仅能记录添加、改动的动作,删除的动作需靠 git rm 来完成。
最后,rm 删除的文件是处于 not staged 状态的,
也就是一种介于 “未改动” 和 “已提交过” 之间的状态。

下面是测试图

一、git rm 与 rm 之间的区别

二、git add . 无法记录 rm 删除动作

三、git commit -m "abc" 无法提交 rm 删除动作

四、git commit -am "abc" 中参数 a 的作用

posted on 2016-08-02 11:23  钡钡是个吃货  阅读(330)  评论(0编辑  收藏  举报