Git常用命令
分支 branch
创建本地新分支,并同步到远程
git checkout -b <branch>
git push -u origin <branch>
创建新分支,并推送到远程
git branch <branch>
git checkout <branch>
git push --set-upstream origin <branch>
删除分支
删除本地分支
git branch -d <branch>
删除远程分支
git push -d origin <branch>
重新设置track到远程分支
git branch --set-upstream-to origin/branch
git branch —set-upstream-to=origin/remote_branch local_branch
找出包含commit的分支名
git branch —contains <sha1> —all
远程分支删除后本地无法pull
git gc —prune=now
git remote prune origin
分支改名
不在本分支
git branch -m original_branch_name new_branch_name
在本分支
git branch -m new_branch_name
重命名远程分支,只能删了重建
标签 tag
打标签
git tag <tag>
git push origin <tag>
删除标签
删除本地标签
git tag -d <tag>
删除远程标签
git push origin :refs/tags/<tag> (refspec)
git push origin --delete tag <tag>
列出所有标签
git tag -l (本地标签)
签出标签
git checkout <tag>
补丁patch
打补丁
git diff > a.patch
git apply —check a.patch
git apply a.patch
版本回退 reset
git reset --hard HEAD^ 回退上一个版本(windows的cmd控制台把^做为换行符)
git reset --hard HEAD~1 回退1个版本
git reset --hard commit_id 回退特定版本
git reflog 操作记录,用于向前回退的查找commit_id
差异 diff
4种差别:
1: 暂存区(索引区)跟工作区的文件差别
git diff, 暂存区是原始文件(源),工作区是目标文件
2: 某一提交与工作区的差别
git diff commit_id, git diff HEAD(最近的提交),版本库是源,工作区是目标
3: 某一提交与暂存区的差别。版本库是源,暂存区是目标
git diff --cached
4: 比较两个提交之间的差别
git diff commit_id1 commit_id2 filename (第一个是源,第二个是目标)
版本管理 version control
修改上次提交的备注
git commit --amend -m "hello world"
生成代码库里track的文件列表
git ls-tree -r HEAD --name-only > repo.txt
Linux中拷贝repo目录
cp -r -L <source-repo-dir> <dest-repo-dir>