一般工作流程如下:
-
克隆 Git 资源作为工作目录。
-
在克隆的资源上添加或修改文件。
-
如果其他人修改了,你可以更新资源。
-
在提交前查看修改。
-
提交修改。
-
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
基本概念
我们先来理解下 Git 工作区、暂存区、版本库和远程库概念:
-
Workspace:工作区,就是你平时存放项目代码的地方
-
Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
-
Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
-
Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
文件的四种状态
版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。
-
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
-
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
-
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致。
-
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
#查看指定文件状态
git status [filename]
#查看所有文件状态
git status
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull
与远程仓库建立连接上传代码
git clone https://gitlab.com/testgitlablisten/test.git
然后在你当前目录下就会下载好远程的项目
此时你cd
进去当前的项目
然后上传你的代码
git add README.md
git commit -m “add README”
git push -u origin master
如果是上传这个项目的其他代码,你直接cd到你所需要的目录,然后执行上述命令上传代码即可。
创建分支命令:
git branch (branchname)
切换分支命令:
git checkout (branchname)
列出分支基本命令:
git branch
没有参数时,git branch 会列出你在本地的分支。
$ git branch
- master
删除分支:
$ git branch -d branch1
Deleted branch branch1 (was c1501a2).
分支上传
假设新分支名字为 branch1:
git checkout -b branch1
这部命令就先在本地定位到了branch1分支。
随后:
git add .
git commit -m “你想说的注释”
git push -u origin branch1
git add. 表示此目录下的所有都add
分支合并
回到主分支
git checkout master
合并
git merge branch1
然后回到master分支,进行
git push -u origin master
查看历史提交记录。
git log
以便获取需要回退至的版本号:
比如需要回退至的版本号是:aa909cff2239536df14820fe086d96305b24e9f1。
通过:
git reset –soft <版本号>