能看懂这个图就什么都会了
- 基本操作
- (1)、拉取分支数据
默认master分支 git pull
指定分支 git pull origin master
(2)提交数据
添加到暂停区
提交当前目录下的所有文件 git add .
提交当前仓库所有文件 git add *
指定目录或文件 git add dirname test.php hello.txt
(3)、 添加到当前分支 git commit -m '注释'
提交到远程仓库 git push git push origin master
git push -f origin master //强制提交
注释: origin远程仓库名,master分支名,-f为force,意为:强行、强制。
(4)撤销修改
git checkout . # 放弃所有修改
git checkout test.php # 放弃test.php文件修改
git clean -fd # 放弃新创建的目录或文件
如果已经添加到暂停区了怎么撤销?两步完成(git add test.php)
git reset HEAD test.php
git checkout test.php
查看当前的远程库 git remote -v
添加远程仓库 git remote add [shortname] [url]:
$ git remote add pb git://github.com/paulboone/ticgit.git
2、版本回退
回退到上一个版本
git reset --hard HEAD^ git reset --hard 版本号
指定版本号(如果电脑有重启,使用 git reflog)
git reset --hard d496317fc
HEAD is now at d496317fc dev update
回退成功后提交到远程仓库 git push origin master
分支管理
创建分支 git branch develop
切换分支 git checkout develop
当前分支前面标记一个*号
* develop
master
创建分支并且切换到新创建的分支 git checkout -b develop
fetch只会拉取远程分支最新版本,不做merge操作
git fetch origin test
git checkout test
查看本地分支 git branch
查看远程分支 git branch -a
重命名本地分支名称 git branch -m develop new_name
推送本地分支到远程 git push origin develop
删除本地分支 git branch -d develop
删除远程分支 git push origin --delete develop
合并某分支到当前分支 git merge develop
查看更新日志
git log 打印出所有的提交记录
git log -3 --stat 看最近3条更新日志,并且简单显示出所涉及的文件
若查看某一次提交的内容,执行下面命令
git show 464454542f51c22dbf2fdf133426e094c59789e4 --stat
.gitignore文件,忽略git不必要提交的文件
1、在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。
2、输入 touch .gitignore ,生成“.gitignore”文件。
3、在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。
gitignore文件不生效
gitignore文件里面明明写好了.idea文件的忽略规则,理论上不会提交,但是每次改完代码要提交之前查看status,都会提示.idea里的某个文件有改动,需要提交,这就很烦心了,搜了下其他人的博客,解决方法如下:
- 原因
.gitignore只能忽略之前没有被staged(缓存)的文件,如果已经staged纳入了版本管理中,在修改.gitignore是无效的,查看了下远程的代码,确实存在.idea文件,说明它之前被提交过,已经staged过了;
下面这段话来自github: .gitignore文件不工作 因此,要想用gitignore忽略文件,必须先把它们从staged中移除 - 解决方法
git rm -r --cached xxx.xml (要忽略的文件名)
git add .
git commit -m ‘update .gitignore’
上面的三行代码,就清除了这个文件的本地缓存,从staged中移除了,这样.idea文件就会按照修改之后的gitignore规则来执行了,不会在提交了;