Git是一种非常流行的分布式版本控制系统,它和其他版本控制系统的主要差别在于Git只关心文件数据的整体是否发生变化,而大多数版本其他系统只关心文件内容的具体差异,这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。Git另一个比较好的地方在于绝大多数操作都可以在本地执行,而每个本地都可以从服务器获取一份完整的仓库代码,而且在没网的时候仍然可以修改和使用大部分命令,在方便的时候再跟服务器进行同步,这样可以更好的实现多人联合编程。
Windows上安装软件:
TortoiseGit:https://tortoisegit.org/download/
创建ssh key:
ssh-keygen -t rsa -C "china@youxiang.com"
提交账号身份:
git config --global user.name "china"
git config --global user.email "china@youxiang.com"
初始化git工程:
git init
创建本地分支:
git checkout -b master
添加远程GIT:
git remote add origin http://github.com@myname/yourRepo.git
添加远程分支:
git add index.php
或者:
git add -A //来一次添加所有改变的文件
git add . //表示添加新文件和编辑过的文件不包括删除的文件
git add -u //表示添加编辑或者删除的文件,不包括新添加的文件
添加文件到本地分支:
git commit 'index.php'
提交文件到本地分支:
git push origin master
或者:
git push origin branchName(本地分支名):branchName(远程分支名)
//推送文件到远程分支,如果没有远程分支会自动创建
查看状态:
git status
gitignore文件:
bin
*.ini
help
bin和help里面不是源代码,可以忽略提交,用git status只会看到源代码文件,就可以git add -A。
创建分支 :
git branch [branchname]
查看本地分支 :
git branch
查看全部分支(包含本地和远程) :
git branch -a
删除本地已合并的分支:
git branch -d [branchname] 某些情况下可以用 git branch -D [branchName] (使用时应注意是否已合并)
删除远程分支:
git push origin --delete [branchname]
//注意: 在删除远程分支时,同名的本地分支并不会被删除,所以还需要单独删除本地同名分支
//如果发生以下错误:
//error: unable to delete ‘origin/xxxxxxxx-fixbug’: remote ref does not exist
//error: failed to push some refs to ‘git@github.com:xxxxxxxx/xxxxxxxxxx.git’
//解决办法: git checkout xxxxx-fixbug 切换到当前分支上, 然后再 进行 git push --delete origin //origin/xxxxx-fixbug
//此时将不会再发生错误 。
根据指定版本号创建分支:
git checkout -b branchName commitId
清理本地无效分支(远程已删除本地没删除的分支):
git fetch -p
如果分支太多,还可以用此命令进行分支模糊查找:
git branch | grep 'branchName'
查看日志操作:
git log
git log --all --graph --oneline
恢复到当前版本:
git reset --hard HEAD
恢复到某一个文件:
git reset --hard file.txt
恢复到上一个版本:
git reset --hard HEAD^
恢复到指定的版本:
git checkout commit commitID //用git log查看ID
git reset --hard commit commitID //用git log查看ID
比较暂存取和HEAD的区别:
git diff
git diff --cached
将自己的分支合并到master并提交:
git checkout development
git pull origin master
git checkout master
git merge development
git push -u origin master
拉取最新master并合并到自己的分支:
git checkout master
git pull origin master
git checkout development
git merge master
git push -u origin development
笔记:
git status //查看版本库的状态
git rest HEAD //撤销添加缓存文件操作
git rest --hard HEAD^ //版本回退方式
git rest --hard HEAD~1 //版本回退方式
git rest --hard 3feg3dlfe //版本回退方式
git diff HEAD --file.txt //查看文件修改前后的区别
git log
git log -5 --pretty=oneline
git reflog
git checkout -- file.txt
git rm file.txt
git ls-files