git 基本操作
1、git init 在一个文件夹下执行该命令,对该文件夹下的内容进行管理。在该文件夹下会创建一个隐藏的目录.git
2、git status 查看文件夹下内容的状态,没有更改的则什么也没有,有更改的,则会显示红色额,表示该文件被更改了。
3、git add ..... 如果要对该文件进行归档,则添加上该文件。添加之后该文件变绿,这表示会对该文件归档。
4、git add . 表示添加全部文件
在git commit 之前需要 执行
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
清楚是谁执行的提交命令。
5、git commit -m '详细归档说明' 创建一个归档的版本,归档说明尽量详细。
1、git log 查看现在的版本到以前的归档的记录。
git log --pretty=oneline 在一行上显示
2、git reflog 这个查看更全面,会找到所有的归档记录。
3、git reset --hard 回滚到某条归档记录。
向前回滚一个版本:
git reset --hard HEAD
注意:git checkout file 将在工作区中没有提交的代码撤回,git checkout 分支名称 切换到指定分支;
工作区和库是两个不同区域,库有两个区域,暂存区和存储区。
git 分支开发
1、建立分支
在一个分支或者主库分支上执行该命令
git checkout -b dev 拷贝当前分支代码到dev分支,并切换到dev分支。相当于下面两条命令。
git branch dev 创建分支dev,并拷贝当前分支代码到dev
git checkout dev 切换到分支dev
然后在该分支上开发,提交代码,和原来的分支并行。
2、当分支开发完成需要上传修改后的功能到主分支,在主分支上执行
git merge dev
如果主分支包含于dev分支,就是dev拷贝主分支后主分支没有被更改,则执行会直接成功,否则需要在分支上合并上主分支改变的内容,再在主分支上执行merge操作,或者直接git status 查看文件不同之处,合理修改提交也可。
分支操作的常用命令:
git branch
git checkout 分支名称 切换到指定分支
git branch dev 创建分支dev
git branch -m 分支名称 创建并切换到指定分支
git branch -d 分支名称 删除分支
git merge 分支名称 在该分支上合并指定分支
git stash运用
这种情况感觉用得会不是很多,而且在公司中主分支不会用。
这种情况一般用分支操作会更好,因为在后面执行 git stash pop 后,因为两边都有更改,因此会有冲突,需要手动合并代码,然后再提交,解决冲突,这时说不定当时git stash 保存的功能还未开发好,放在主库上这样不是很好。
git stash 运用过程
1、git stash 保存当前的未提交的开发代码,相当于回到分支最后提交的状态,保存了在这之后开发的功能
2、在最后提交的代码上修改存在的问题,最后提交该问题修改完成后的版本
3、git stash pop 将保存的状态释放出来,这时,由于最后的版本,和释放出来在工作区上的存在冲突,会让修改冲突,保留全部内容,后再提交,git add . git commit -m '' 当然更改后,可以再在以前的基础上修改增加功能再提交
4、结束(相当于在该分支上最后提交的两次修改的结果)
git和github合用的第一种方式:
先在github上创建了仓库,再将仓库拷贝出来,进入,再在这个仓库中创建项目。
1、在网上的github仓库中创建一个仓库 hello_word
2、在自己的计算机本地创建一个文件夹,在该文件夹下打开git管理的命令行工具,在命令行工具上执行下载github上创建的仓库。
git clone https://github.com/angelo6868/hello_word.git
将网上仓库克隆到本地
3、cd切换到仓库目录下,此时不用执行git init 操作,相当于已经执行,对该仓库进行了管理,在该仓库的目录下,创建项目,即可对该项目进行管理。
4、git add . git commit -m '' 这样在本地仓库中进行管理起来
5、git push -u origin master 这样提交同步到远程仓库中
第二种方式:
先在本地创建项目,用git进行管理,再上传到github上,先在本地上传,再执行下面两条命令
1、 git remote add origin https://github.com/angelo6868/git_test1.git
2、git push -u origin master