对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)
git init | 初始化新项目 |
git status | 查看所有文件状态 |
git add | 将文件添加到暂存区 |
git commit | 提交暂存区文件 |
git log | 查看提交历史 |
git config --global user.name "<name>“ | 配置用户姓名 |
git checkout –b feature dev | 新建并切换到新功能分支 |
git add files | 添加新文件到暂存区 |
git commit –a –m ‘修改原因’ | 将暂存区所有修改提交 |
git checkout dev | 切换回开发分支 |
git merge –-no-ff feature | 合并新功能分支 |
git brance -d feature | 删除新功能分支 |
git pull origin dev | 获取并合并远程服务器最新代码 |
git push origin dev | 推送本地分支到远程服务器对应分支 |
git push origin --delete <branchName> | 删除远程分支 |
git push origin --delete tag <tagname> | 删除tag |
初始化配置
mkdir testproject
cd testproject
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin [email protected]:test.git
git pull --rebase origin master
忽略一些文件
.gitignore的文件
git 回滚单个文件
#git log 找到要回滚的commitID
#git checkout -m commitID -- 文件路径(相对路径)
获取所有分支到本地
remote=origin;for remotebr in `git branch -r | grep $remote | grep -v master | grep -v HEAD `; do git checkout --track $remotebr ; done
添加远程仓库
git remote add $remotename git://url
推送所有分支到远程仓库
git push --all $remote
推送所有tags
git push --tag $remote
分支操作
看各个分支最后一个提交对象的信息git branch -v
查看哪些分支已被并入当前分支git branch --merge
查看尚未合并的工作 git branch --no-merged
使用-D强项删除分支
本地一个新的分支,上传到远程
git push origin test:test
删除远程分支,本地仍会保留
$ git push origin :test
获取远程分支
git checkout -b release1.0.0 origin/release1.0.0
获取不到远程分支
git remote show origin
git remote update
git fetch
git checkout -b local-name origin/remote-name
删除不存在对应远程分支的本地分支
查看分支状况 git remote show origin
从本地版本库中去除 git remote prune origin
本地配置
git config --global core.filemode false
git config --global core.safecrlf warn
git config --global core.autocrlf false
删除已经提交过的文件
git rm --cached filename
#!/bin/sh
for fname in `find -maxdepth 5 -type d -regex '.*/[bB]in'`; do git rm -r --cached $fname ;done
for fname in `find -maxdepth 5 -type d -regex '.*/obj'`; do git rm -r --cached $fname ;done
for fname in `find -maxdepth 5 -type d -regex '.*/[Ll]og'`; do git rm -r --cached $fname ;done
恢复为上传的提交
git log 找到commontid
git reset --hard commontid