1. 初始化:git init, git commit -a //把所有东西都commit上去,估计就第一次用
2.在.git目录下有一个config文件, 需要我们添加一下个人信息后才能使用。否则我们不能对其中添加和修改任何文件。原始的config文件是这样的:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
我们需要加入
[user]
name = xxx
emai= xxx@kuxun.cn //要研究一下
3.如果希望忽略某些文件,需要在git库根目录下添加. gitignore文件。//继续研究
4.我们向一个源代码管理库提交代码的更改,都会抽象为以下的动作:更改文件;向源码管理系统标识变化。
因此, git-update-index就是向源码管理系统标识文件变化的一个抽象操作。说的简要一些,git-update-index命令就是通知git库有文件的状态发生了变化(新添、修改、删除等待)。这条命令在早期的git版本中是非常常用的。在新的git版本(1.5版本及以后)已经被其它命令包装起来,并且不推荐使用了。
//三步 这个命令不用了,写在这方便理解这个过程。
5.git-add 命令的本质是命令"git-update-index --add” 的一个包装。因此,git-add除了可以添加文件,还可以标识文件修改。在调用了git-add后,才可以做commit操作。git-rm 也是一样。
git-add * ,则默认是递归将子目录中所有文件都add到git库中。
git-ls-files来查看当前的git库中有那些文件。
6.git -status 通过该命令,我们可以查看版本库的状态。可以得知那些文件发生了变化,那些文件还没有添加到git库中等等。 建议每次commit前都要通过该命令确认库状态。以避免误操作。
7.提交变化 git-commit -m "*******" 注释不能为空。
每一次提交,git就会为全局代码建立一个唯一的commit标识代码。在提交后,还可以通过git-log命令来查看提交记录。
用户可以通过git-revert命令恢复到任意一次提交时的代码。
8.git -branch 分支管理
当第一次执行git-init时,系统就会创建一个名为”master”的分支。而其它分支则通过手工创建。
常见分支策略:
i 创建一个属于自己的个人工作分支,以避免对主分支 master 造成太多的干扰。
ii当进行高风险的工作时,创建一个试验性的分支。
查看分支 – git-branch
创建分支 – git-branch 分支名
git-checkout -b 分支名
使用第一种方法,虽然创建了分支,但是不会将当前工作分支切换到新创建的分支上,因此,还需要命令”git-checkout 分支名” 来切换, 而第二种方法不但创建了分支,还将当前工作分支切换到了该分支上。
删除分支 – git-branch –D 分支名 //可以删除分支,但是需要小心,删除后,发生在该分支的所有变化都无法恢复。
合并分支 – git-merge “some memo” 合并的目标分支 合并的来源分支。git-merge已经很少用了, 用git-pull来替代了。用法为:git-pull 合并的目标分支 合并的来源分支。 如git-pull . dev1
9.git-clone。通过这个命令,你可以从远端完整获取一个git库,并可以通过一些命令和远端的git交互。
git-clone的使用方法如下: git-clone [ssh://]username@ipaddr:path。 其中, “ssh://”可选,也有别的获取方式,如rsync。 Path是远端git的根路径,也叫repository。
通过git-clone获取远端git库后,.git/config中的开发者信息不会被一起clone过来。仍然需要为.git/config文件添加开发者信息。此外,开发者还需要自己添加. gitignore文件。
通过git-clone获取的远端git库,只包含了远端git库的当前工作分支。如果想获取其它分支信息,需要使用“git-branch –r” 来查看, 如果需要将远程的其它分支代码也获取过来,可以使用命令” git checkout -b 本地分支名远程分支名”,其中,远程分支名为git-branch –r所列出的分支名, 一般是诸如“origin/分支名”的样子。如果本地分支名已经存在,则不需要“-b”参数。
10.git -pull 可以从任意一个git库获取某个分支的内容。
git-pull username@ipaddr: 远端repository名 远端分支名:本地分支名。这条命令将从远端git库的远端分支名获取到本地git库的一个本地分支中。其中,如果不写本地分支名,则默认pull到本地当前分支。
和git-merge的作用相同。 因此,如果你的本地分支已经有内容,则git-pull会合并这些文件,如果有冲突会报警。
11.git -reset 库的逆转与恢复 //有点莫名其妙,再看看
git clone
修改
git pull
确定OK
git push
git add *
git commit -m "First commit. Adding the project"
git push -u origin master
Git fork
http://help.github.com/fork-a-repo/
概要: 克隆别人的代码库到自己的项目中,可以作为子模块的形式使用,或二次开发
操作流程:
在开源项目中点击fork按钮,稍等一会儿,该项目便会拷贝一份到你的respositories中,
克隆一份代码到本地:git clone git@github.com:username/Spoon-Knife.git
配置:(项目克隆完成后,默认远程的别名为origin,此为我们自己项目中的版本,并非原始作者的代码库)
创建原始代码库的别名,方便跟踪代码 git remote add upstream git://github.com/octocat/Spoon-Knife.git
git fetch upstream 跟踪原始代码
提交代码更新到自己的代码库 git push origin master
获取原始代码库的更新
git fetch upstream
git merge upstream/master
如果你希望将自己的代码贡献到原始代码库中,可参见http://help.github.com/send-pull-requests/ 来完成