首页 > 代码库 > git使用入门

git使用入门

http://blog.csdn.net/codectq/article/details/50777866 

git入门(1)--提交代码的一般步骤


http://blog.csdn.net/codectq/article/details/50777877 

git入门(2)-Git stash保存当前的工作现场


http://blog.csdn.net/codectq/article/details/50777883 

git入门(3)-Git pull和git fetch从远程拉取分支到本地


http://blog.csdn.net/codectq/article/details/50777887git入门(4)-Git rebase

http://blog.csdn.net/codectq/article/details/50777934 

git入门(5)-Git revert和git reset版本号的回退


http://blog.csdn.net/codectq/article/details/50778071git入门(6)-Git checkout 和git branch分支的创建和删除

事实上我一直都没有可以非常好的使用git这个代码管理工具。

作为开源项目必须学会使用的工具。因此不得不写下一些东西来记录。

1.初始化一个空的git仓库

caotaiqiang@server1:~$ mkdir myfirstgit
caotaiqiang@server1:~$ cd myfirstgit/
caotaiqiang@server1:~/myfirstgit$ git init
Initialized empty Git repository in /home/caotaiqiang/myfirstgit/.git/
caotaiqiang@server1:~/myfirstgit$ 

命令凝视:

在上面的命令中,真正去初始化的是第四行的那句---git init

如今myfirstgit已经创建完毕。


能够用 --bare 选项执行 git init 来建立一个裸仓库。这会初始化一个不包括工作文件夹的仓库。

$ cd /opt/git
$ mkdir project.git
$ cd project.git
$ git --bare init

这时,Join,Josie 或者 Jessica 就能够把它加为远程仓库,推送一个分支,从而把第一个版本号的项目文件上传到仓库里了。

”git init –bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是由于这个仓库仅仅保存git历史提交的版本号信息,而不同意用户在上面进行各种git操作,假设你硬要操作的话。仅仅会得到以下的错误(”This operation must be run in a work tree”)

这个就是最好把远端仓库初始化成bare仓库的原因。

caotaiqiang@server1:~/myfirstgit$ ls .
./    ../   .git/

可以看到创建好的.git文件夹。文件夹中有什么呢?

caotaiqiang@server1:~/myfirstgit$ ls .git/
branches/    config       description  HEAD         hooks/       info/        objects/     refs/

这时候事实上什么都还没有。

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true

在config文件里仅仅有上面的信息。

2.向仓库提交我们写的文件

caotaiqiang@server1:~/myfirstgit$ mkdir kernel
caotaiqiang@server1:~/myfirstgit$ ls
kernel
caotaiqiang@server1:~/myfirstgit$ mkdir uboot
caotaiqiang@server1:~/myfirstgit$ ls
kernel  uboot
caotaiqiang@server1:~/myfirstgit$
caotaiqiang@server1:~/myfirstgit$ mkdir aaa
caotaiqiang@server1:~/myfirstgit$ git add aaa
caotaiqiang@server1:~/myfirstgit$ git commit -m "inint" aaa/
error: pathspec ‘aaa/‘ did not match any file(s) known to git.

命令解释:
我们在仓库中新建了一个文件file。作为我们的演示样例文件。

记住是文件!!!

!!。!。!!

。所以上面当创建一个目录并加入的时候会报错。解决的方法是在目录中加入文件。

caotaiqiang@server1:~/myfirstgit$ cd kernel/
caotaiqiang@server1:~/myfirstgit/kernel$ touch aaa
caotaiqiang@server1:~/myfirstgit/kernel$ cd ..
caotaiqiang@server1:~/myfirstgit$ git add kernel/
caotaiqiang@server1:~/myfirstgit$ git commit -m "init" kernel/
[master e7c2e05] init
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 kernel/aaa

将file文件的信息加入到git仓库的索引库中。并没有真正加入到库。

将索引库中的内容向git仓库进行提交。这步之后文件file才算真正提交到拉git仓库中。双引號中的内容是依据每次改动的不同内容,由我们自己去填写的,

非常多人会看见

  git commit -a -m “ ”

这条的命令是在你已经add了一个或多个文件过之后,然后改动了这些文件。就能够使用该命令进行提交。

好了,无论怎么样,最终是将文件提交到库了。如今的仓库仅仅是一个本地的仓库,以下的操作是将本地仓库变成远程仓库。

3.在本地仓库加入一个远程仓库,并将本地的master分支跟踪到远程分支

首先看一下当前分支:

caotaiqiang@server1:~/myfirstgit$ git branch
* master
caotaiqiang@server1:~/myfirstgit$ git remote add origin ssh://caotaiqiang@10.0.12.191/~/myfirstgit/.git
caotaiqiang@server1:~/myfirstgit$ git push origin master
caotaiqiang@10.0.12.191‘s password:
Everything up-to-date
caotaiqiang@server1:~/myfirstgit$

命令凝视:

在本地仓库加入一个远程仓库,当然ssh后面的地址是我们本地仓库的地址.

将本地master分支跟踪到远程分支,在git仓库建立之初就会有一个默认的master分支,当然你假设建立了其它分支,也能够用相同的方法去跟踪.

如今的git仓库已经是一个远程仓库了,

測试一下

4.測试

如今本机上看看:

caotaiqiang@server1:~/myfirstgit$ git remote show origin
caotaiqiang@10.0.12.191‘s password:
* remote origin
  Fetch URL: ssh://caotaiqiang@10.0.12.191/~/myfirstgit/.git
  Push  URL: ssh://caotaiqiang@10.0.12.191/~/myfirstgit/.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for ‘git push‘:
    master pushes to master (up to date)
caotaiqiang@server1:~/myfirstgit$


git使用入门