如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:
想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新 的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:
过了一周,你想找回被删除的文字,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删
如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?
这个软件用起来就应该像这个样子,能记录每次文件的改动:
版本 | 文件名 | 用户 | 说明 | 日期 |
---|---|---|---|---|
1 | service.doc | 张三 | 删除了软件服务条款5 | 7/12 10:38 |
2 | service.doc | 张三 | 增加了License人数限制 | 7/12 18:09 |
3 | service.doc | 李四 | 财务部门调整了合同金额 | 7/13 9:51 |
4 | service.doc | 张三 | 延长了免费升级周期 | 7/14 15:17 |
这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪
是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
$ git status
On branch master
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: helloworld.js
5.查看更改变化
$ git diff helloworld.js
diff --git a/helloworld.js b/helloworld.js
index b906f66..e5abf89 100644
--- a/helloworld.js
+++ b/helloworld.js
@@ -1,4 +1,4 @@
-var age = 22;
-if(age == 22){
- console.log("age == 22");
+var num = 22;
+if(num == 22){
+ console.log("num == 22");
}
\ No newline at end of file
$ git log
commit eb91b68040c6a7b6e347fd4c9ca839238c7307f0 (HEAD -> master)
Author: zhousir <2919150@qq.com>
Date: Fri Feb 15 09:39:48 2019 +0800
增加if判断语句
commit 46635c71ebfe7315b105cd46ef020529c01528ff
Author: zhousir <2919150@qq.com>
Date: Fri Feb 15 09:33:45 2019 +0800
初始变量age
$ git log –pretty=oneline //只显示版本号和提交注释
$ git reset --hard HEAD^ //HEAD最新版本,后面跟上"^"表示最新版本的上一个版本,“^^”表示上上一个版本;
HEAD is now at eb91b68 增加if判断语句
$ git reset --hard 46635c71ebfe7315b105cd46ef020529c01528ff //回退到指定版本号
HEAD is now at 46635c7 初始变量age
$ git checkout -- helloworld.js //helloworld.js 需要恢复的文件; 如果不知道恢复文件名,可通过 git status 查看
删除工作区文件
提交删除修改操作 git add . git commit -m "删除文件"
现在的情景是:我们已经在本地创建了一个Git仓库后,又想在github创建一个Git仓库,并且希望这两个仓库进行远程同步,这样github的仓库可以作为备份,又可以其他人通过该仓库来协作。
首先,登录github上,然后在右上角找到“create a new repo”创建一个新的仓库。
接着 要据GitHub的提示,在本地的testgit仓库下运行命令:
$ git remote add origin https://github.com/tugenhua0707/testgit.git //你的github仓库地址
$ git push -u origin master
把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了
克隆远程库内容到本地
$ git clone https://github.com/yihu0817/webapp.git
推送本地库修改内容到远程库
$ git push origin master
拉取远程库内容到本地
$ git pull
Updating 6269da3..c80261a
Fast-forward
bin/www | 1 +
1 file changed, 1 insertion(+)
git pull会将本地库更新至远程库的最新状态 由于本地库进行了更新,HEAD也会相应的指向最新的commit id
在 版本回填退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
总结创建与合并分支命令如下:
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除分支:git branch –d name
安装完git后配置环境变量 “D:\git\Git\cmd”,win+R打开cmd输入命令git验证是否安装成功,在任意路径下能进入git,说明环境变量设置生效。
Warning: Your console font probably doesn’t support Unicode. If you experience strange characters in the output, consider switching to a TrueType font such as Lucida Console!