git add .
git rm filename
git rm --cached filename:移除暂存取文件
git reset --hard commitid
git reset --soft commitid
git show commitid
git commit -m "message"
git commit --amend -m "message"
git push url HEAD:refs/for/branchname[gerrit 提交]
git log -p filename:查看文件修改记录,已及文件的blogid
gitk filename:查看文件修改记录
git init :初始化库
git add .:添加到暂存区
git status:查看状态
git diff [commitid1 commitid2]
git diff :查看工作区 暂存区的区别
git diff --cached/--staged :查看暂存区和本地仓库区别
git diff commitid commitid
git diff commit commit filename:两个版本文件的区别
git checkout -- filename :丢弃对工作区的改动 git reset --hard HEAD :丢弃全部修改,使3个区域相同
git commit -m "":提交到本地仓库
git push url HEAD:remotebranchname
git branch -a:查看所有分支
git branch Test:基于当前提交创建分支
git branch Test commitid:基于commitid 创建分支
git clone ../Server/server.git ./:clone 代码
git reset HEAD:重置暂存区
git reset HEAD filename:重置暂存区某个文件
git reset --hard 版本号:回退到上个版本,此时工作区,暂存区,本地仓库一致
git reset --soft 版本号:回退到版本号,且保留工作区,和暂存区一致{如从当前版本号3 回退到2,此时的状态为2 与3版本,只差一次git commit}
git reset 版本号:回退到版本号{如从当前版本号3 回退到2,此时的状态为2 与3版本,相差git add 和git commit}
git reset HEAD filename:取消对某个文件的暂存
git checkout -b newbranch remotes/origin/Test1:基于远程分支创建分支
git pull origin Test1:Test1 :将远程分支Test1 合入到Test1的本地分支
git remote add urlname url:添加url 别名
git remote remote urlname:移除url 别名
git fetch url:会获取版本库中所有的提交
pull = fetch +merge
git log --oneline:简短log
git log -10:查看最近10条
git log --graph:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
在某个文件夹下创建 .gitignore 文件,用于过滤不需要git 跟中的文件
touch .gitignore
在 .gitignore 文件中添加不要跟踪文件如
*.txt :不跟踪txt 文件[* 为通配符]
/work:不跟踪work 目录下文件
test/:不跟踪文件路径中包含 test的目录文件
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
git stash :存储工作区和暂存区的修改
git stash pop:恢复位于栈顶被存储的修改
git stash list:列出所有的存储
stash@{0}: WIP on master: 63c04b0 add 1111
stash@{1}: WIP on master: 63c04b0 add 1111
git stash pop stash@{0}:恢复本次修改
git init --bare:初始化一个裸仓库{一般用于服务器端}
git remote -v:查看远程仓库具体url 对应的缩写
git remote add orign ../newserver/ :添加版本库
git remote rm orign :移除一个版本哭
git remote show orign
origin /work/GitTest/2client/../1client/ (fetch)
origin /work/GitTest/2client/../1client/ (push)
git clone irl:通常获取的是 master 分支
git branch -a:查看服务器上其他分支
git checkout --orphan test:创建一个空分支,此时这个分支是看不到的,通过git pull orign test:test 将服务器上代码合入到本地仓库,或者git commit 一次就可以看到该分支
平时创建的分支都是在当前分支的基础上创建的所以会产生一次commit
git pull urlshortname testsrc:testdest:将test 分支拉取到本地[第一次通过这种方式获取的代码本地分支和远程分支还没有关联,
此时可以使用 以下命令建立关联]
git branch --set-upstream-to=origin/remotebranch yourbranch:将本地分支和远程分支关联也可git push -u 创建分支关联{即通过一次指定url 的提交建立关联}
git pull :会将默认url服务器上所有分支信息获取到本地,否则需要指定对应的分支
FETCH_HEAD:存放是的获取的版本
HEAD:是当前指针指向的版本
-----------------------------------------------------------------------------
当前在master 分支 需要合入feature-a 分支
git merge feature-a
git checkout commit:检出某个版本,此时HEAD 指针指向commit ,而master 指针还在原来版本上
feature-a 分支{活动分支} ,master 分支为 feature-a 的分叉分支,现在master 向前开发后,需要将feature-a 分支的下修改合入到
master 分支,一般就是在master 分支上,git merge feature-a. 但是这样会产生分叉。这里可以通过
在 feature-a 分支上进行一次变基操作
git rebase master:就是把分叉点改为master 分支最新的commit,然后
在master 分支上git merge feature-a
分支移植
当前分支为feature-a 分支 ,feature-a 和release 两个分支分别基于master 分支
git rebase master --onto release
这样feature-a 分支就不是基于master 分支,而是基于master 分支
---------------------------------------
git init --bare testinit.git:初始化一个没有工作区的仓库
master
* test
remotes/origin/HEAD -> origin/master----->远程分支的HEAD 指向的是master 分支 origin
remotes/origin/master--->远程版本库master 分支
remotes/origin/test-->远程版本库的test分支
git checkout -b test remotes/origin/test:从远程分支中叉出一个test 分支{否则新建分支会多出一个提交}
git push origin :test :删除远程分支
git push/pull :默认只拉取当前分支的数据
----------------------------------------------------------------------------------------
TAG
git tag tagname branchname -m "messgae":创建一个Tag
git tag :查看tag
git push默认不推送Tag,通过以下方式推送Tag
git push tagname:推送到服务器
git push --tags
git tag -l :查看所有标签
git pull/fetch :会拉去所有的Tag
git pull/fetch --no-tags:不获取Tag