什么是版本版本控制?
版本控制是一种激励一个或若干文件内容变化,以便将来查阅特定版本修改情况的系统。
那么接下来看一下git提交代码的流程
首先我们一般都是在本地编辑文件,一般也把我们编辑文件的地方称作工作区。提交代码要把文件提交到暂存区,提交到暂存区之后再把文件提交到本地仓库,最后把本地仓库中的文件提交到远程仓库中,这个远程仓库一般为自己创建的分支,最后把分支并入主分支master分支,也就是clone代码的地方。
1、初始化新的本地仓库
git仓库:我个人解为本地存储文件的地方
- 初始化一个新的git仓库
git init
2、把工作区文件提交到暂存区
- 提交本地文件到暂存区
// 注意:add后边有个点。提交当前目录所有文件
git add .
// 也可以指定特定文件,只需要把点换位要提交的文件,也能够同时提交多个,以空格分开就可以
git add a b c
3、把暂存区的文件提交到本地仓库,即git init创建的仓库
- 提交暂存区文件到本地仓库
git commit -m "相关描述" // 用于区分不同的版本
4、把本地仓库的文件提交到远程仓库
git push orign master //将本地版本库推送到远程服务器,
origin是远程主机,master表示是远程服务器上的master分支和本地分支重名的简写,分支名是可以修改的
如果要并入主分支,按照以下操作即可
- git merge 分支
git merge 工具用来合并一个或者多个分支到你已经检出的分支中。 然后它将当前分支指针移动到合并结果上。一般只是 git merge 带上一个你想合并进来的一个分支名称。
下面是一些使用过程中需要注意或者可能遇到的问题
-
提交代码到本地的git仓库时,提交的代码有错,删除本地仓库里面的代码(全部),使用下面代码。
git reset --hard origin/master -
git add将工作区代码提交代码到暂存区
git add -u .
-u 表示将已跟踪文件中的修改和删除的文件添加到暂存区,不包括新增加的文件,注意这些被删除的文件被加入到暂存区再被提交并推送到服务器的版本库之后这个文件就会从git系统中消失了。 -
git add -A .
-A 表示将所有的已跟踪的文件的修改与删除和新增的未跟踪的文件都添加到暂存区。 -
git pull origin master先将远程仓库master中的信息同步到本地仓库master中
-
git reset --soft 回退到提交之前的版本,本地代码为提交之前的代码 默认的git reset就是该写法的缺省写法。
-
git reset --hard 回退到clone时的状态,做出的修改无效。
-
git reset --soft head 如果指定file就会把指定的文件从本地仓库回滚到暂存区,如果文件修改过,不会和clone时的状态一样。
-
git ls-tree -r master --name-only 列出已经被跟踪的文件 只显示文件名
-
git ls-tree -r master 详细列出已经被跟踪的文件 能够显示文件的详细信息
下面找到svn和Git的一些功能上和操作代码上的对比图,一并列出来了:
# | 场景 | Svn | Git |
---|---|---|---|
1 | 下载代码 | svn checkout | gitclone |
2 | 加入版本控制 | svn add | git add |
3 | 本地提交 | - | git commit |
4 | 提交到服务器 | svn commit | git push |
5 | 获取其他人的更新 | svn update | git fetch / pull(fetch不会自动merge,pull自动merge) |
6 | 查看状态 | svn stattus /log /diff | git status / log /diff |
7 | 新建本地分支 | - | git branch |
8 | 切换分支/版本 | svn swich | git checkout |
9 | 合并分支 | svn merage | git merge /rebase |
补充
1、git add * //add全部文件,也可以是具体文件名
2、git commit –m //“提交信息” 一般从卡片内获取
3、git push orgin dev:refs/for/dev
//把dev分支提交
4、git checkout –b LocalName origin/OriginName
//切换分支,指定本地分支名称和需要checkout的远程分支
5、git diff //对比工作去和暂存区快照
6、git status //用于显示工作目录和暂存区的状态。
7、git log //项目历史commit信息
8、git reset –hard/soft <commit id> //返回到commitid版本。
--hard //本地代码(工作区)改变
--soft //不改变,回撤到commit之前的状态,在暂存区内
9、 git commit --amend //修改提交内容
10、git reset HEAD test.txt //误删某个文件想要恢复这个文件
git checkout test.txt //误删某个文件想要恢复这个文件
11、git fetch --all
git reset --hard origin/master
git pull //拉取远程代码
12、git branch -D BranchName //删除本地分支, 删除本地分支的时候需要先切换到其他分支。
13、git push origin --delete Name //删除远程分支-慎。
14、git checkout -b dev origin //创建一个新的分支
注意:不用废弃提交了,直接在本地修改,然后
git add xxx
git commit --amend 然后退出
git push origin dev:refs/for/dev