忽略某些文件
可以在顶层工作目录中添加一个叫".gitignore"的文件,来告诉Git系统要忽略掉哪些文件,
如果想忽略规则只对特定的仓库起作用,可以把这些忽略规则写到仓库下.git/info/exclude文件中或写在Git配置变量core.excludesfile中指定的文件里。
rebase
假设现在基于远程分支"origin",创建一个叫"mywork的分支:
git checkout -b mywork origin
如果想让"mywork"分支历史看起来像没有经过任何合并一样,你可以用git rebase:
git checkout mywork
git rebase origin
这些命令会把你的"mywork"分支里的每个提交(commit)取消掉,并且把它们临时保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把"mywork"分支更新到最新的"origin"分支,最后把这些补丁应用到“mywork"分支上。
当’mywork’分支更新之后,它会指向这些新创建的提交(commit),而那些老的提交会被抛弃。如果运行垃圾收集命令(pruning garbage collection),这些被对其的提交就会删除。(请查看 git gc)
在rebase的过程中,也许会出现冲突(conflict).在这种情况,Git会停止rebase并会让你去解决冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index),然后,你无需执行git commit,只要执行:git rebase --continue
这样git会继续应用(apply)余下的补丁。
在任何时候,都可以用–abort参数来终止rebase的行动,并且"mywork"分支会回到rebase开始前的状态。
git rebase --abort
git 提交
git branch -r
显示:
local/master
m/master -> origin/master
origin/master
git remote -v
显示:
local /home/liupeng/Launcher/Launcher.git/ (fetch)
local /home/liupeng/Launcher/Launcher.git/ (push)
origin ssh://liupeng0625@192.168.24.109:39418/AOSP9/vendor/aptiv/AptivApp/Launcher (fetch)
origin ssh://liupeng0625@192.168.24.109:39418/AOSP9/vendor/aptiv/AptivApp/Launcher (push)
提交:
git push origin(对应上面的origin) HEAD:refs/for/master
就提交上了
git push P_Launcher HEAD:refs/for/master
头指针分离的情况
解决办法:
#强制将 master 分支指向当前头指针的位置
$ git branch -f master HEAD
检出 master 分支
$ git checkout master
git revert用法
git revert撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
git revert HEAD 撤销前一次commit
git revert HEAD^ 撤销前前一次commit
git revert commit(比如:faofdsfshfdsjflds)撤销指定的版本,为一次提交进行保存。
git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容
××××××××××××××××××××××××××××××××××
git revert和git reset的区别
1.git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
2.在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert使用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还是会被引入。
3.git reset是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
M - 被修改,A - 被添加,D - 被删除,R - 重命名,?? - 未被跟踪
git commit -a -m “提交说明”,git commit -a只对状态为M的文件有用,而对新增的问题是不起作用的,因为我们新添加的文件NewCreateFile仍然处于Untracked状态中。
查看和修改远端地址
1.添加远程仓库地址
git remote -v命令来查看当前仓库的远程地址
git remote add 远程仓库地址别名 来添加一个新的仓库地址,下方添加的是一个ssh的仓库链接。
2.远端仓库地址删除和重命名
git remote rm origin命令来删除别名为origin的远端地址,删除后,再次查看时,origin的仓库地址就木有了。
git remote remote rename origin_ssh origin命令,将origin_ssh重命名为origin即可。
git remote show origin命令来查看push到远端的那个分支
git 账户切换
删除某个账户配置,可在~/.gitconfig中删除即可
将文件checkout到本地目录
命令:checkout或co
示例:
I、svn co http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名–password 密码
II、svn co svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名–password 密码
III、svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
IV、svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
注意事项:
1、如果不带–password参数传输密码的话,会提示输入密码,建议不要用明文的–password选项。推荐使用示例c、d,其执行之后会提示输入密码
2、其中username 与password前是两个短线,不是一个。
3、若不指定本地目录全路径,则检出到当前目录下。