-
git config core.ignorecase false
设置版本库区分大小写 -
git config --global log.date iso
设置git log
时间显示格式为ISO标准时间格式。
-
git pull
拉取当前分支到本地,并且合并 -
git merge dev
合并最新的开发分支dev
,保持自己分支的进度,避免最后合并时有太多冲突 -
git checkout -b [分支名](如add_user)
创建分支,并切换到这个分支 -
git status
查看当前版本库状态 -
git add . | git add xxx
添加文件到暂存区,.
当前文件夹下所有文件xxx
是具体文件路径 -
git commit -m "[操作] [信息]"
提交所有暂存区文件到本地版本库 -
git push origin [当前分支名]
推送本地版本库到远程版本库 -
一天工作结束,必须有一次
4,5,6,7
操作 -
功能完成后操作
11
或者14
-
gitlab 这种
web
端管理软件管理时,一个功能完成后,或者说功能上线,执行7
,并到gitlab
页面,选择你当前的分支,点击页面右侧的创建合并请求,Assignee
选择你的领导,Target branch
选择dev
,然后点击submit
,非 web 端软件管理,直接10
,找上级合并
-
git push origin --delete <branchName>
删除远程分支 -
git fetch -p
删除没有远程分支的本地分支 -
git tag -a v1.4 -m 'my version 1.4'
含标注的标签 -
git tag v1.5
轻量级标签 -
git tag -a v1.2 9fceb02
给某个commit
打tag
-
git log --pretty=oneline
单行显示log
-
git diff --name-status master dev
对比dev
相对于master
的文件更改状况,显示文件列表 -
git diff --name-only master dev | xargs tar -czvf update.tar.gz
对比dev
到master
的改变,并打包压缩。 -
xargs -a up.log tar -czvf updata.tar.gz
也可分开执行,导出改变的文件列表,剔除不需要打包的,然后通过xargs -a file
导入并打包。 -
git stash
贮藏,想在分支之间切换,但是又有半成品的或者不想提交的修改,使用它。效果:工作区干净了,贮藏区有东西了。被缓存的文件有:跟踪的更改。不会缓存:未跟踪的文件。 >>注意git stash
只保存在本地,不会因为push
而被推到线上。 -
git stash save "提示文字"
带提示文本的贮藏功能,推荐使用这种贮藏,免的忘记。 -
git stash pop
弹出第一个贮藏到工作区。效果:stash
的第一个变成了当前分支的change list
。 -
git stash apply
根据先后顺序依次覆盖所有贮藏到工作区,并且不删除贮藏。 -
git stash list
显示所有的贮藏。 -
git stash drop stash@{0}
删除第1个贮藏。 -
git stash show
查看贮藏和当前分支的diff
情况。显示diff
的文件列表。 -
git stash show -p
或者-patch
查看贮藏和当前分支的diff
情况。显示diff
的文件内容。 -
git stash branch testchanges
根据贮藏开始的commit
创建新分支。当现存分支不能正常导出贮藏的时候,使用它。 -
git pull --rebase || git rebase
效果:合并远程分支到本地分支,分支记录保持一条直线。 -
git pull
效果:合并远程分支到本地分支,分支记录。 -
git merge
是不保留commit
并新建merge commit
-
git merge --no-ff dev
保留commit
历史,并新建merge commit
,然后合并dev
到当前分支 -
git merge --abort
回到merge
之前的状态,这个命令不总是成功。
-
git revert
还没搞懂,不记录,留个位置。 -
git reset --hard
版本号 ,下面俩个是这个的应用。 -
git reset --hard 56a23
硬重设:HEAD
到指定commit
。效果是这个commit
之后的更改都没了,工作区是干净的。其实操作就是删除了当前commit
之后的commit
。 -
git reset --soft 56a23
软重设:HEAD
到指定commit
。效果是这个commit
之后的更改都当做change list
显示了。其实操作就是重设HEAD
,不删除commit
。 -
git reset HEAD
绿字变红字(撤销add) -
git checkout -- 文件
红字变无 (撤销没add修改) -
git checkout [分支]
切换分支,修改未add
使用checkout
切换分支后,修改会变到对应分支 -
git diff branch1 branch2 --stat
显示出所有有差异的文件列表 -
git diff branch1 branch2 文件名(带路径)
显示指定文件的详细差异 -
git diff branch1 branch2
显示出所有有差异的文件的详细差异 -
git reflog
显示所有操作的log
(commit,checkout,等等其他的还没验证) -
git checkout --track origin/<name>
切换到远程未跟踪分支 -
git fetch --all <origin>
拉取所有分支 -
git pull --all <origin>
拉去并合并所有分支 -
git push REMOTE '*:*'
推送所有分支 -
git push REMOTE --all
推送所有分支