1.仓库操作
git init //初始化
git remote add origin url //关联远程仓库
git pull //拉取远程仓库内容
git fetch //获取远程仓库中所有的分支到本地
git update-index --assume-unchanged 文件名 //忽略单个文件,忽略已加入到版本库中的文件
git rm -r --cached 文件/文件夹名字 /. //忽略全部文件
git update-index --no-assume-unchanged file //取消忽略文件
git config --global credential.helper store //拉取、上传免密码
创建仓库详解:
1.命令行创建一个新的仓库
git init
git add .
git commit -m "first commit"
git remote add origin http://ip:port/xxx/project.git
git push -u origin master
2.从命令行推送已经创建的仓库
git remote add origin http://ip:port/xxx/project.git
git push -u origin master
fork其他仓库同步更新
1. git remote add upstream 源地址
2. git merge upstream/master 更新到自己分支
3. git push origin
2.代码量统计:
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "提交的行数: %s, 删除的行数: %s, 实际行数: %s\n", add, subs, loc }' -; done
3.代码提交:
git add . //将所有改动提交到该分支暂存区
git add 文件名 //将文件提交到该分支暂存区
git add -f 文件名 //强制将文件提交
git commit -m "待提交内容的说明" //为add的内容加注释
git commit --amend //修改注释
git pull origin 分支名 //拉取分支上所有的改动
git push origin 分支名 //将add的改动和注释由暂存区提交到分支上,推送本地分支到远程仓库
git cherry -v //查看提交的内容
git checkout 分支名 //要往哪个分支合并就写哪个分支名
git merge 分支名 //要合并哪个分支就写哪个分支名
git reset --hard origin/xxx //如:当前分支是maser分支,我想讲xxx分支上的代码完全覆盖master分支,首先切换到master分支。
git push -f //执行上面的命令后master分支上的代码就完全被xxx分支上的代码覆盖了(本地分支),然后将本地分支强行推到远程分支。
git rm -r --cached 文件/文件夹名字 //取消文件被版本控制
git reflog //获取执行过的命令
git log --graph //查看分支合并图
git merge --no-ff -m '合并描述' 分支名 //不使用Fast forward方式合并,采用这种方式合并可以看到合并记录
git check-ignore -v 文件名 //查看忽略规则
4.暂存操作:
git stash //暂存当前修改
git stash apply //恢复最近的一次暂存
git stash pop //恢复暂存并删除暂存记录
git stash list //查看暂存列表
git stash drop 暂存名 //移除某次暂存
git stash clear //清除暂存
5.回退操作:
git reset --hard HEAD^ //回退到上一个版本,删除工作空间改动代码,撤销commit,撤销git add .
git reset --mixed HEAD^ //不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
git reset --soft HEAD^ //不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --hard ahdhs1(commit_id) //回退到某个版本
git checkout 文件名 //撤销修改的文件(如果文件加入到了暂存区,则回退到暂存区的,如果文件加入到了版本库,则还原至加入版本库之后的状态)
git reset HEAD file //撤回暂存区的文件修改到工作区
6.分支操作:
git checkout 分支名 //切换分支
git checkout -b 分支名 //自动创建分支并切换到创建后的分支
git branch -a //查看所有分支
git branch //查看当前使用的分支以及分支列表
git branch -v //查看所有分支的最后一次操作
git branch -vv //查看当前分支
git brabch -b 分支名 origin/分支名 //创建远程分支到本地
git branch --merged //查看别的分支和当前分支合并过的分支
git branch --no-merged //查看未与当前分支合并的分支
git branch -d 分支名 //删除本地分支
git branch -D 分支名 //强行删除分支
git push origin --delete 分支名 //删除远程分支
git branch origin :分支名 //删除远处仓库分支
git merge 分支名 //合并分支到当前分支上
git fetch --all && git reset --hard origin/远程分支名 && git pull //git强制覆盖本地分支(单条执行):
7.标签操作:
git tag 标签名 //添加标签(默认对当前版本)
git tag 标签名 commit_id //对某一提交记录打标签
git tag -a 标签名 -m '描述' //创建新标签并增加备注
git tag //列出所有标签列表
git show 标签名 //查看标签信息
git tag -d 标签名 //删除本地标签
git push origin 标签名 //推送标签到远程仓库
git push origin --tags //推送所有标签到远程仓库
git push origin :refs/tags/标签名 //从远程仓库中删除标签