目录
查看远程仓库url
git remote -v
查看分支
git branch (只显示本地分支)
git branch -a (显示本地分支和远程分支)
git branch -d xx (删除本地分支xx)
git branch -vv (显示本地分支和对应的远程分支)
远程分支已删除,本地如何更新
git remote prune origin
从远程分支拉一个自己命名的本地分支
git checkout -b <本地分支> <远程分支>
一般远程分支是以origin开头的
删除本地分支的某个commit
1. git log // 查找要删除的前一次提交的 commit_id
2. git rebase -i HEAD~1//删除HEAD最近的1次 ,也可以将 HEAD~1 替换成commit_id 的值
3. 进入 Vim 编辑模式,将要删除的 commit 前面的 `pick` 改成 `drop`
4. 保存并退出 Vim
删除远程分支的某个commit
先在本地删除,再强制推送到远程。
-f 参数是强制提交,因为删除之后本地库落后于远程库一个版本,因此需要强制提交。
git push -f <远程主机名> <本地分支名>
例如: 强制推送到origin的master分支上
git push -f origin master
使用rebase命令中断后git分支名一直带rebasing,如何去除 :
rm -rf .git/rebase-apply 搞定
git放弃本地修改:
git checkout . 放弃所有修改
放弃某个文件的修改
git checkout -- filepathname
添加整个文件夹及目录
git add 文件夹/ 添加整个文件夹及内容
git add *.文件类型 添加目录中所有此文件类型的文件
拷贝其他分支commit到当前分支(最为新的提交会生成新的commit-id)
git cherry-pick commit-id
# 修改最新一次提交的描述信息。
$ git commit –-amend
$ git commit --amend -m "提交描述"
将最后一次commit 的时间 改为当前时间
git commit --amend --date="$(date -R)" 或
git commit --amend --date=`date -R`
修改历史commit 的时间
1. git rebase -i xxx (xxx填 HEAD~n 或者 commit id)
2.把要修改的commit前面的
pick
更改为edit
或者e
,之后:wq
保存退出3.执行
git commit --amend
进入编辑器编辑commit4.执行
git rebase --continue
即可完成修改
在当前commit上再添加修改
1. git add 修改
2.git commit --amend
3.wq退出
储藏
git stash save "xxx" # 储藏所有未提交的修改(包括暂存的和非暂存的),记录为xxx git stash push file -m "xxx" #储藏指定未提交的修改,记录为xxx git stash list # 查看储藏列表 以下命令不加stash@{index}默认操作最近一次的储藏 git stash show -p stash@{index} #查看指定index的改动 git stash apply stash@{index} #取出指定index的储藏(取出后不从列表删除) git stash pop stash@{index} #取出指定index的储藏(取出后从列表删除) git stash drop stash@{index} #将指定index的储藏从储藏记录列表中删除 git stash clear #删除所有储藏
windows报错:git Filename too long
解决git有可以创建4096长度的文件名,然而在windows最多是260,因为git用了旧版本的windows api。解决方式是:
git config --global core.longpaths true
代码合并 合并所有修改
# 将branch1中的修改(f/g)合并到branch2,可执行如下命令行
# 将分支切换到 branch1 分支
$ git checkout branch2
# 将branch2修改merge到branch1
$ git merge branch1
合并某一个或者几个修改
# 将branch1中的某个修改(f/g)合并到branch2,可执行如下命令行
# 先将分支切换到branch2
$ git checkout branch2
# 将branch1中的f修改优选到branch2
$ git cherry-pick
# 一次性cherry-pick某几个commit点
$ git cherry-pick
# 撤销cherry-pick过程
$ git cherry-pick --abort
# 解决冲突后,继续cherry-pick的进程,否则可能造成无法推送的问题
$ git cherry-pick --continue
管理跟踪远程仓库
# 查看连接的远程仓库地址
$ git remote -v
# 为本地仓库添加远程仓库地址
$ git remote add [name] [gitUrl]
# 将本地仓库的master和远程仓库的master进行关联
$ git push -u origin master
# 为本地仓库修改远程仓库地址
$ git remote origin set-url [gitUrl]
标签操作(Tag)
# 新建标签
$ git tag [tagName]
# 查看标签列表
$ git tag
# 删除标签
$ git tag -d [tagName]
# 推送标签到远程仓库
$ git push origin [tagName]