首页 > 代码库 > 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$ ls
kernel
caotaiqiang@server1:~/myfirstgit$ mkdir uboot
caotaiqiang@server1:~/myfirstgit$ ls
kernel uboot
caotaiqiang@server1:~/myfirstgit$
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@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使用入门