git的一些用法

来源:互联网 发布:软件商城建设 编辑:程序博客网 时间:2024/05/22 16:03

git说的简单一点就是:假设有许多人在完成一项任务,他们首先需要在自己的本机上做一些修改,然后把本机上的代码上传到远端的中央控制台上(也就是整个项目所在的地方),这个过程他们需要用git来完成。

1. 安装git

ubuntu:命令行:apt-get install git

mac: 可以到这里下载图形或的git

windows:到这里下载git

2. 在项目中初始胡git

1. 在项目目录中输入命令行: git init, 该命令生成一个.git的目录,存放git需要的数据和资源

        2. 获取项目输入命令行:git clone url,该命令从你指定的url处获取整个项目

3. 一些基本使用

为了方便理解,这里需要说以下3件事情:

1. 假设你最近一次从中央控制台下载代码的时候,中央控制台的代码样式为a

                2. 那么现在距你最近从中央控制台下载代码已经过去几天,在这段时间里你修改了本机上的代码,这个时候,你本机上的代码样式为b

                3. 在这几天中,不断有其他的工程师在上传他们的代码到中央控制台,所以现在中央控制台的代码样式为c

        1. 查看更新的文件命令行:git status,该命令查看从你最近一次从分支下载代码起到现在这段时间,你本机上变更过的代码

                                                    也就是b和a不一样的部分

        2. git status后,找到本机控制台中显示‘changes to be committed’的部分,在那里应该有3中情况:

                                  (1)modified:文件名

                                  (2)new file:文件名

                                     对于以上两种情况,使用命令行: git add 文件名,该命令把文件加到即将要提交给中央控制台的代码之中

  (3)deleted:文件名

                                           对于这种情况,使用命令行:git rm 文件名,该命令把什么文件需要删除加到即将要提交给控制台的代码之中

              除了'changes to be committed',还有一项叫'changes not staged for commit',那里的文件是在一个叫.gitignore的文件中定义的。可以直接在项目路径中找到该文件,将                 不想上传给中央控制台的文件,比如你本机的数据库、服务器配置文件,一些你本机上的日志文件等,手动添加到该文件中。

               例如:*.log 忽略所有的.log文件

              当然你也可以用 git add 文件名 ,把那些在gitignore文件中的文件加到想要上传的文件之中

       3. git add 之后,我们需要给所有的这些变化起一个名字,告诉中央控制台我们将要提交的这些变化叫什么名字,使用命令行:git commit -m ‘all changes name’,该命令给所              有的add的文件加了一个名字,告诉中央控制台这次变更的代码是干什么用的

       4. git log 可以查看所有git commit过的事件,

           git log -p -2 查看最近两次的commit跟新,并显示内容差异

       5. git remote 查看远程控制台的名字,一般默认是origin,git branch查看你所在的分支,一般是master

       6. git push 可以把当下所有你commit过的事件推送到远程控制台,命令如下:git push origin master,其中origin是远程控制台的名字,master是你所在分支的名字

           当在push数据的时候可能会报错,两种可能性

           (1)你的本机上有一些代码改变没有添加到git commit中,这时如果这些代码不重要,可以使用命令行:git stash,该命令把更改的文件变更回之前没有修改过的状态下

           (2)远程控制台上有其他人上传了他们的代码,你的本机上没有这些代码,所以你需要首先更新你本机的代码,命令行:git pull origin master,该命令使你本机上的代码                       与当下远程控制台的代码一致,而且保存有你将要推送的代码。

                    注意:在使用git pull 时,可能会有conflict出现,原因是你更改的代码部分,其他人也更改了,一般的显示方式是

                    <<<<<<<<<<<<HEAD

                     something1

                    ================

                     something2

                    <<<<<<<<<<<<<hashvalue

   你需要做的是删除其中的多余符号,并合并something1和something2,一般something1是你做的一些改变,something2是其他人做的改变,确定保留的内容后,需要                     重新使用git status 查看变化,并把他们git commit起来。

             然后就可以推送了

       7. 现在想另外一个问题,如果一波人在一个分支上工作,另一拨人在另外一个分支上工作,他们的代码互相可能会有影响,这时就需要分别在branch1和branch2上工作,当分            别结束编写之后在合并到master上,步骤如下:

           (1)git checkout -b branch1, git checkout -b branch2, 不同组的经理分别新建一个分支为branch1和branch2

           (2)git checkout branch1, git checkout branch2, 不同组的组员分别切换到已经存在的branch1和branch2中

           (3)git branch ,确定自己在正确的branch中

           (4)git checkout master,在分别结束编程后,回到master 中

           (5)git merge branch1,git merge branch2,合并master和branch1,branch2

                    这时可能会有冲突

                    <<<<<<<<<<master

                    something1

                   =============

                   something2

                   <<<<<<<<<<branch1

                   something1是你所在branch中的内容,因为现在在master分支上,所以第一部分是master,第二部分是要合并的分支的内容,需要手动解决

           (6)解决后注意这时所有的代码只在你的本机上,需要git push origin master推送到远程控制台上

           (7)git branch -d branch1 删掉分支 

           

       












0 0
原创粉丝点击