一些常用的GIT命令
git init
将一个空的文件夹进行初始化
git config --global user.email username@email.com git config --global user.name "username"
设置提交代码时显示的用户名和邮箱,--global表示全局的git设置
git config --global core.autocrlf false
签入和签出代码时,是否自动对换行符进行转换。因为Windows和Linux对换行符的定义不同,可能导致代码内容有问题。
git remote add origin user@gitrepos
git remote set-url origin user@gitrepos
设置/添加远程分支的地址
git config --list
列出当前respository的全部设置
git fetch
从当前分支取得代码
git pull --rebase
将remote的代码与本地代码进行merge。--rebase的意思是让merge代码的时候,无需加注释则不加注释,让整个分支更加简洁。
git clone user@gitrepos
从server克隆代码到本地,会包含对应的GIT信息
git config core.sparsecheckout true
配置sparsecheckout,通过这个配置选项可以让GIT只从server上抓取自己需要的代码
配置文件在.git/info/sparse-checkout
git checkout [branch]
切换分支
如果是git checkout . 则表示撤销所有修改内容
git add .
将所有改动的文件加入track
git reset
将加入track的文件(git add)撤销
git commit .
将所有改动的文件(tracked, modified)commit到当前分支(本地)
git push
将本地的改动推送到server
git branch -a
列出全部分支,包括从server同步过来的远程分支
git checkout -b
创建新的本地分支
git commit -m
commit的时候直接写入注释,而无需再打开一个注释文档
git push --set-upstream origin
为没有关联远程分支的本地分支设置一个远程分支。
当从一个已有关联远程分支的本地分支上再拉出一个分支,且对这个新分支进行push的时候,会有提示说没有关联的远程分支
git push -d origin
删除远程分支。慎用!!!
git fetch -p
删除不存在的远程分支。(不是很懂)
git branch -d <branch>
删除本地分支
git diff <branch A> <branch B>
比较两个分支的区别
git reset --hard HEAD
回退版本到HEAD。HEAD即指向当前版本。即回退所有修改。(如果修改了大量文件,使用该命令可能导致所有修改都消失且无法挽回)。参考这篇文章
gitk --all
在Windows下打开GUI界面以查看分支树
git log --oneline
单行显示修改记录
git merge <branch>
将另一个分支与当前分支合并