常用的git命令

来源:互联网 发布:怎么把源码上传到空间 编辑:程序博客网 时间:2024/06/08 05:20

git是用来进行代码托管的,我们可以在github上查看他人的项目,同时,我们也可以将我们自己的代码上传,这样就不用耗费空间进行代码存储,下面就来介绍git的使用方法

一.创建版本库
创建版本库有两个方法,一个是在本地创建版本库,另一个是在网站上手动创建版本库
(1)本地创建版本库

mkdir 新目录                    //本地新建一个空目录git init                       //初始化git add README.txt             //提交到暂存区git commit -m "项目的简介"       //提交到分支

(2)github上创建版本库

这里写图片描述

点击Create repository,新建一个版本库
注意:此时本地并没有该项目,需要克隆到本地

二.托管你的第一个项目

(1)克隆远程库到本地

git clone git@github.com:用户名/版本库  //克隆远程库到本地

注:克隆完成后,git会自动创建master分支

(2)提交本地分支到远程
克隆完成后,就可以开始写代码了。在代码提交前,可以通过以下命令来查看有哪些文件被修改

git status                       

一切准备就绪,开始提交代码

git add 文件名                    //将修改的文件添加到暂存区//如果提交的文件过多,又不想一个一个的提交,可以使用如下命令git add .    将所有的修改添加到暂存区git commit -m "本次提交的说明"     //将暂存区的内容提交到分支git push origin 远程分支名        //将分支内容提交到远程分支

(3)撤销修改
如果对此次修改不满意应该如何撤销修改?下面是撤销修改的三种情况及解决方法:

1.只是单纯的修改了工作区文件

git checkout -- 文件名

2.已通过git add 命令将其添加到暂存区

git reset HEAD file      //撤销'git add 文件名'操作git checkout -- 文件名

3不仅通过git add 命令将其添加到暂存区,还通过 git commit 命令将其内容提交到分支

git reset --hard commit_id

其中 commit_id是自动生成的号码(相当于进程号)

如果不知道commit_id,可以通过如下命令查看:

git log        //显示从最近到最远的提交日志,包括commit-id信息

确认了commit_id就可以退回相应的版本

(4)删除文件
有时候需要删除一个文件,以下是删除文件的两种情况

1.删除工作区的文件

git rm 文件名git commit -m "本次提交说明"

2.删除暂存区文件

git checkout -- 已删除的文件名

三.多人合作
一个大型的项目是需要多个人一起合作完成的。多人合作的时候一定要注意,不要随便将代码提交到master分支,要创建自己的分支

(1)创建分支
多人合作时需要创建属于自己的分支进行开发

git branch 分支名               //创建分支git checkout 分支名             //切换分支/*上面两步可以用下面的一步来替代*/git checkout -b 分支名          //创建分支及切换

关于一些常见的分支名:
master:主分支,是最终完成的结果
dev:开发分支,在最终的结果没有完成前,所有的开发都是在这个分支上进行的
bug:只用于在本地修复bug,bug修复完成后就可以删除该分支
feature:每当添加一个新功能时,就可以创建feature分支

分支完成后需要将其合并到dev分支进行代码测试等工作

git merge 分支名    //合并某分支到当前分支

多人协作时,如果需要其它分支的代码,則需要执行下面的步骤

//将远程分支拉到本地git fetch origin 远程分支名   //在本地创建dev分支并切换git checkout -b 本地分支名 origin/远程分支名 //把分支上的内容都拉取到该分支上git pull origin 远程分支名    

注:远程分支名要与本地分支名相同

(2)推送分支
测试完成后,需要将代码推送到远程分支

git push origin 远程分支名      //将当前分支推送到远程分支

(3)删除分支
当分支完成时,需要删除分支,直到项目完成,最终只会剩master分支

git branch -d 分支名    //删除分支

(完)