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 删掉分支
- git的一些用法
- git 的一些用法
- git tag的一些用法
- Git 的一些基本用法
- git的一些简单用法
- 关于git的一些用法
- git的一些用法命令
- git的一些基本用法
- git的一些简单用法(一)
- Git 命令的一些基本用法
- git一些用法
- 在Intellij IDEA 关于git的一些用法
- 【Git】git的高级用法
- git的一些进阶
- git的一些常用命令
- git 的一些使用
- git的一些常用命令
- git的一些操作
- service常见用法及相关知识
- Object-C中的NSString
- Objective-C——内存管理
- 继承、抽象类和接口
- Private VLANS(私用Vlan)
- git的一些用法
- 《Effective C++》:条款52-条款55
- 作业0327
- Linux Shell脚本的字符串截取
- js简单的选项卡
- 【Linux】Linux下安装MySQL版本冲突的一个解决方法
- 迭代器实现二分法搜索
- 用Ant实现Java项目的自动构建和部署
- 学习Spring笔记二