git常用
git add指定目录的所有文件(包括隐藏文件)
git add -f *
初始化仓库到clone的状态
git gc --auto
git clean -dfx 目录文件可执行文件
清空本地远程分支关联的远程分支(注意:若远程仓库误删的话,则可能找不到了)
git remote prune origin
rebase代替merge
git pull --rebase
git branch操作
git branch -d branch-name 删除分支.
git branch -D branch-name 强制删除分支.
git merge master 合并主分支到当前分支.
git branch 查看本地所有分支
git branch -a 查看本地+远程分支
git branch aa #创建一个分支aa
git reset操作
git reset --soft: 撤销并回退 commit, 不影响 index file, 撤销到哪个位置由最后一个参数指定.
git reset --soft HEAD^ git reset --hard: 撤销 commit, index file and workspace
git reset --mixed: 默认选项, 撤销 commit and index file, 只保留workspace.
已经 add . 了, 用如下命令重置 git reset,恢复到工作区
git checkout操作
git checkout . 恢复到原来的样子
git checkout [file] 撤销对文件file的修改
git checkout -b branch-name 创建并切换到分区.
git stash操作
git stash: 备份当前工作内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop [stashId]: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
整体使用流程
1、git clone +地址 git clone https://github.com/master-dev.git
2、git branch --all # 默认只有master分支,所以会看到如下两个分支 # master[本地主分支] origin/master[远程主分支] # 新克隆下来的代码默认master和origin/master是关联的,也就是他们的代码保持同步
3、git branch master1 origin/master 创建本地分支 关联到远程分支
(如果是修改过的 那么就直接在维护的那个本地master1 上 pull一下最新的提交即可)
4、创建本地新的dev分
git branch dev # 创建本地分支
git branch # 查看分支
# 这是会看到master和dev,而且master上会有一个星号
# 这个时候dev是一个本地分支,远程仓库不知道它的存在
# 本地分支可以不同步到远程仓库,我们可以在dev开发,然后merge到master,使用master同步代码,当然也可以同步
5、在本地新的dev分支上进行add commit
git add my_file,other_file git add . Git会递归地将你执行命令时所在的目录中的所有文件添加上去
git commit -m "initial commit"
6、在将本地新的dev分支上进行提交的内容 通过Cherry-pick 命令 依次将时间从最远到最近的顺序 提交到master1上
Cherry-pick + commit的记录id //进行提交合并并检测冲突到master
(a.当发生冲突的时候,到代码文件中进行冲突处理。 b.解决完成以后 直接使用add .命令进行添加。c.继续之间产生冲突的命令cherry-pick --continue 命令 ,继续未完成的提交操作)合并之后可以执行 add commit 添加保存 之后进行push
7、将master1上的修改 推送到远程
你想要推送你的本地代码库的主干分支到你的远程代码库,可以使用如下命令:
git push origin master1:master1 $ git push :
8、对提交的修改内容 进行撤销回退
Git reset --hard HEAD~3 //回退三条
Git reset --hard HEAD^ //回退一条
跨条回退 需要记住之前的提交记录ID号。
9、提交完成后的后续操作
a.删除开发分支dev
git branch -D dev
b.维护链接分支master1 (pull最新的即可)
c.再次建立一个开发分区 进行开发