html5中文学习网

您的位置: 首页 > 网站及特效实例 > html5实验 » 正文

git学习笔记

[ ] 已经帮助:人解决问题

Git — The stupid content tracker。NzEHTML5中文学习网 - HTML5先行者学习网

用途:版本控制NzEHTML5中文学习网 - HTML5先行者学习网

流程:取代码 → 每次工作前更新代码到最新版本 → 修改代码 → 提交代码到服务器NzEHTML5中文学习网 - HTML5先行者学习网

git下载地址:git-scm.com/download (有win、linux、mac对应版本)NzEHTML5中文学习网 - HTML5先行者学习网

一、git设置

设置用户名与邮箱NzEHTML5中文学习网 - HTML5先行者学习网

git config --global user.name "My Name"git config --global user.email "my@email.com"

上面设置命令中带了“–global"参数,是全局配置,影响本机上所有的git项目。也可以对一些单独的项目进行设置,进入要设置的项目目录,进行设置:NzEHTML5中文学习网 - HTML5先行者学习网

cd dirgit config user.name "My Name"git config user.email "my@email.com"

查看配置:NzEHTML5中文学习网 - HTML5先行者学习网

cat .git/config

二、创建git仓库及操作

创建git仓库:NzEHTML5中文学习网 - HTML5先行者学习网

mkdir projectcd projectgit init #在当前的目录下建一个仓库

检出仓库:NzEHTML5中文学习网 - HTML5先行者学习网

git clone git@server:app.git myrepo

查看远程仓库:NzEHTML5中文学习网 - HTML5先行者学习网

$ git remote -v

添加远程仓库:NzEHTML5中文学习网 - HTML5先行者学习网

$ git remote add [name] [url]

删除远程仓库:NzEHTML5中文学习网 - HTML5先行者学习网

$ git remote rm [name]git push origin master

三、更改代码的操作

更新本地代码到最新版本(需要merge才能合到本地代码中):NzEHTML5中文学习网 - HTML5先行者学习网

git fetch

合并更新后的代码到本地:NzEHTML5中文学习网 - HTML5先行者学习网

git merge

更新代码方式的另一种方法(git pull是git fetch和git merge命令的一个组合):NzEHTML5中文学习网 - HTML5先行者学习网

git pull

修改代码后,查看已修改的内容:NzEHTML5中文学习网 - HTML5先行者学习网

git diff --cached

将新增加文件加入到git中:NzEHTML5中文学习网 - HTML5先行者学习网

git add file1 file2 file3

所有文件全部加入到git中:NzEHTML5中文学习网 - HTML5先行者学习网

git add .

从git中删除文件:NzEHTML5中文学习网 - HTML5先行者学习网

git rm file1git rm -r dir1

提交修改:NzEHTML5中文学习网 - HTML5先行者学习网

git commit -m 'this is memo'

如果想省掉提交之前的 git add 命令,可以直接用:NzEHTML5中文学习网 - HTML5先行者学习网

git commit -a -m 'this is memo'commit和commit -a的区别, commit -a相当于:第一步:自动地add所有改动的代码,使得所有的开发代码都列于index file中第二步:自动地删除那些在index file中但不在工作树中的文件第三步:执行commit命令来提交

提交所有修改到远程服务器,这样,其它团队成员才能更新到这些修改NzEHTML5中文学习网 - HTML5先行者学习网

git push

四、git 分支(branch)操作

创建dev分支:NzEHTML5中文学习网 - HTML5先行者学习网

git branch dev

查看项目仓库中有几个分支:NzEHTML5中文学习网 - HTML5先行者学习网

git branch//*号为当前所在分支  dev* master

分支切换:NzEHTML5中文学习网 - HTML5先行者学习网

//切换到dev分支git checkout dev

查看master分支和dev分支差异:NzEHTML5中文学习网 - HTML5先行者学习网

git diff dev

合并dev分支到master分支(如果合并发生冲突,需要自己解决冲突):NzEHTML5中文学习网 - HTML5先行者学习网

git merge branchname

解决冲突:NzEHTML5中文学习网 - HTML5先行者学习网

当merge命令自身无法解决冲突的时候,它会将工作树置于一种特殊的状态,并且给用户提供冲突信息,以期用户可以自己解决这些问题。当然在这个时候,未发生冲突的代码已经被git merge登记在了index file里了。如果你这个时候使用git diff,显示出来的只是发生冲突的代码信息。在你解决了冲突之前,发生冲突的文件会一直在index file中被标记出来。这个时候,如果你使用git commit提交的话,git会提示:filename.txt needs merge在发生冲突的时候,如果你使用git status命令,那么会显示出发生冲突的具体信息。

在你解决了冲突之后,你可以使用如下步骤来提交:NzEHTML5中文学习网 - HTML5先行者学习网

第一步(如果需要增加文件):NzEHTML5中文学习网 - HTML5先行者学习网

git add file1

第二步:NzEHTML5中文学习网 - HTML5先行者学习网

git commit

删除dev分支:NzEHTML5中文学习网 - HTML5先行者学习网

git branch -d dev

如果要删除的分支没有被合并到其它分支中去,那么就不能用“git branch -d”来删除它,需要改用“git branch -D”来强制删除。NzEHTML5中文学习网 - HTML5先行者学习网

将分支推送到远端仓库:NzEHTML5中文学习网 - HTML5先行者学习网

git push origin <branch>

删除远程分支:NzEHTML5中文学习网 - HTML5先行者学习网

git push origin --delete <branch>

五、打标签

git可以对某一时间点上的版本打上标签。如在发布某个软件版本(比如 v0.1等),可以打版本标签。NzEHTML5中文学习网 - HTML5先行者学习网

列出已有的标签:NzEHTML5中文学习网 - HTML5先行者学习网

git tag

打标签:NzEHTML5中文学习网 - HTML5先行者学习网

git tag -a v0.1 -m 'tag version 0.1'

把本地tag推送到远程:NzEHTML5中文学习网 - HTML5先行者学习网

git push --tags

删除tag:NzEHTML5中文学习网 - HTML5先行者学习网

git push origin --delete tag <tagname>

六、其它常用命令

显示commit日志:NzEHTML5中文学习网 - HTML5先行者学习网

git log

不仅显示commit日志,而且同时显示每次commit的代码改变:NzEHTML5中文学习网 - HTML5先行者学习网

git log -p

查看当前仓库的状态:NzEHTML5中文学习网 - HTML5先行者学习网

git status

回滚代码:NzEHTML5中文学习网 - HTML5先行者学习网

git revert HEAD

你也可以revert更早的commit,例如:NzEHTML5中文学习网 - HTML5先行者学习网

git revert HEAD^

销毁自己的修改NzEHTML5中文学习网 - HTML5先行者学习网

git reset --hard

查看最新版本和上一个版本的差异(一个^表示向前推进一个版本)NzEHTML5中文学习网 - HTML5先行者学习网

git diff HEAD HEAD^

git取消已经缓存的文件(慎用):NzEHTML5中文学习网 - HTML5先行者学习网

git reset

git恢复删除了的文件,git pull 从git服务器取出,并且和本地修改merge, 类似于SVN up,但是对删除的文件不管用,恢复删除文件用NzEHTML5中文学习网 - HTML5先行者学习网

git checkout -f

七、githubb备忘

Global setup:  Download and install Git  git config --global user.name "imbingdian"  git config --global user.email imbingdian@gmail.comNext steps:  mkdir projectname  cd projectname  git init  touch README  git add README  git commit -m 'first commit'  git remote add origin git@github.com:bingdian/projectname.git  git push -u origin masterExisting Git Repo?  cd existing_git_repo  git remote add origin git@github.com:bingdian/projectname.git  git push -u origin master

Git 常用命令图示–来源:http://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.htmlNzEHTML5中文学习网 - HTML5先行者学习网

扩展阅读:

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助