进入你的工作目录
cd yourworkpath
列出所有branch,当前所在branch前面有“*”号。
git branch -a
切换工作库
git checkout v1.5.1
合并另一个branch,通常是master
git merge master
再切换回来
git checkout master
查看当前目录情况
git status
将当前目录中的修改提交到相应的库(branch)中
git commit -m “”此处添加修改说明””
从远程库中合并最新状态
git pull
注:当使用git pull命令的时候如果提示有本地文件修改了,无法合并的时候,我们可以放弃本地修改(注意放弃的修改将不可恢复),然后再更新;
如果不想放弃本地修改,可以先提交,然后再合并更新。
如果要放弃本地修改后更新:
git reset –hard
git pull
将合并后的状态并入远程库中。
git push origin master
如果是在分支上开发则为:
git push origin v1.5.1
取消某个文件的版本控制,但实际不删除这个文件:
git rm –cached somefile.txt
然后再修改目录下的.gitignore文件,添加上这个文件的相应忽略即可。
查看每一行的改动:
git blame
<filename>
git 查看一个文件的所有修改历史
git log –pretty=oneline
<filename>
创建一个分支并切换到这个分支工作,通常可用于临时进行一些测试性的开发,如果要保留这个dirty的分支内容,可以commit上去,随时再切换回master就象一切没发生过。
git checkout -b dirty
如果这个测试性的开发需要被接受合并到主干master,只要切换到master再合并即可:
git checkout master
git merge dirty丢弃加入缓存区(即git add的准备提交的文件)的修改,分别退回到当前版本、上一个版本、上上一个版本、前99个版本、某特定 id 版本:
git reset –hard HEAD
git reset –hard HEAD^
git reset –hard HEAD^^
git reset –hand HEAD~99
git reset –hard 322542re342查看过去和未来的版本 id 等信息:
git log
git reflog丢弃某个文件的修改,和SVN的revert命令一样
git checkout – comefile.txt
丢弃本地所有文件的修改,和SVN的revert命令一样
1 | git checkout -- *.* |
- 查看当前路径下的远程库情况:
1 | git remote -v |
- 添加远程库路径
1 | git remote add origin https://github.com/wind13/xxx.git |
- 查看分支详细信息
1 | git branch -vv |
- 更换本地分支对应的远程分支
1 | git branch --set-upstream-to=origin/master master |
- 快速本地复制一个库到另一个目录,不带多余的文件:
1 | git fast-export --all | (mkdir ../repobackup && cd ../repobackup && git init && git fast-import && git reset --hard HEAD) |
分拆代码库
1
2git filter-branch --prune-empty --subdirectory-filter ./folder/to/subrepo/ branch-name
git filter-branch --prune-empty --subdirectory-filter ./folder/to/subrepo/ -- --all如果分拆有误,想退回
1
git reflog
查看到具体要回到哪个点,记住HEAD{n}里面那个数字n;
然后再执行 reset 回到那个位置:1
git reset --hard HEAD@{n}
-
- 第一次添加子目录,建立与git项目的关联
1
2git remote add -f ai https://github.com/aoxu/ai.git
git subtree add --prefix=ai ai master --squash- 从远程仓库更新子目录
1
2git fetch ai master
git subtree pull --prefix=ai ai --squash- 从子目录push到远程仓库
1
git subtree push --prefix=ai ai master