一、拉取远程分支
// 拉取远程名叫dev的分支
git fetch origin dev // 执行后本地git branch并不能看到dev
git checkout dev // 可以看到dev了,在dev上开发
二、本地新建分支推送到远程
// 假设本地新建分支名为dev
git push --set-upstream origin dev
三、修改分支名
// 先修改本地->推送以删除远程旧名称->再推送新名称
git branch -m OldBranchName NewBranchName // 此时本地修改完成
git push origin :OldBranchName // 此时删除远程旧名称完成
// 注意写法:origin后必须有空格,冒号后必须没有空格
git push --set-upstream origin NewBranchName // 推送新名称到远端
四、cherry-pick
首先找到需要cherry-pick的提交记录,一般pick其它分支的;
然后切回本分支,执行git cherry-pick hash-ID;
这里的hash-ID要写完整。
五、rebase
git rebase分两种情况:
第一,rebase自己,即合并连续的几次提交记录,以做整理。
git rebase -i hash-ID
hash-ID要写完整,而且是开区间,解释一下,比如合并1、2、3、4、5这几个commit,那hash-ID得写6,也就是说commit 6不会被合并,到它之前为止。
使用过程中发现一个问题,合并完之后显示的是最早一个提交记录的日期时间,也就是5(1是最新),这样感觉不很合理,显示最新的更合适吧,而且没找到能实现的方法,不管怎么调整pick、s的顺序都不行,有的调法还不被允许。。。。。。
第二,rebase其它分支。
一般用于往master合入时,以使master的提交历史单线化、更清晰易理解 ,而git merge指令忠实保留各提交记录和合并记录,虽然记录完整,但时间线、事件线更复杂,根据看重点做取舍吧。
git rebase master
rebase的过程中也可能会产生冲突,解冲突之后git rebase --continue即可。
git rebase --abort放弃rebase操作,回到先前的状态
六、修改用户名、邮箱
git 查看自己的用户名和邮箱_git查看用户名和邮箱-CSDN博客
git commit --amend --author "name <mail>"
这个命令会修改commit的ID,注意。
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
七、修改remote地址
八、写多行commit
git commmit -m注释中换行问题_git commit -m 换行-CSDN博客
无他,唯手熟尔。
持续记录,勤加练习。
九、修改ignore文件后不生效
修改ignore文件后发现想要被ignore的文件并没有被ignore,状态没有改变,这是因为修改ignore只会对后续新增的文件生效,对已经commit的不生效,此时需要把缓存清一下:
git rm --cached . 或者 git rm --cached specify_your_file
然后再add、commit、pull、push
请注意,这里的rm不是真的删除workspace中的文件,而只是删除缓存中的索引,所以不必担心文件丢失,add、commit之后想要被ignore的文件的状态就会发生改变。