Git使用总结

来源:互联网 发布:淘宝township怎么充值 编辑:程序博客网 时间:2024/05/18 00:50

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/ 来完成