所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化。
不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的。
Git 常用基础命令合集
创建
git init 创建空的repository
git add fileName 添加修改的文件,把文件修改添加到暂存区
git commit -m '提交的消息' 把暂存区的所有内容提交到当前分支
git diff commitId1 commitId2 查看两次提交的区别
git diff commitId1:fileName commitId2:fileName 查看两次提交的文件的区别
分支
git branch 查看分支
git branch branchName 创建分支
git checkout branchName 切换到branchName分支
git checkout -b branchName创建并切换到branchName分支
git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支
git merge branchName 把branchName分支合并到当前分支
git branch -d branchName 删除branchName分支,注意不要在branchName分支上做这个操作
git branch --set-upstream branch-name origin/branch-name 建立本地分支和远程分支的关联
查看修改
git status 查看当前状态,有哪些改动
git diff fileName 查看文件修改的内容
git diff HEAD -- fileName 查看文件fileName工作区和版本库最新版本的区别
撤销修改
git reset --mixed 把已经添加到暂存区的修改撤回,改为非暂存状态
git reset --hard commit_id 回滚到commit_id的commit
git checkout -- fileName 撤销fileName文件在工作区的修改,注意--不要丢掉,回到添加到暂存区后的状态
git reset HEAD fileName 把暂存区的fileName的修改撤销掉
查看提交历史
git log 查看提交历史
git log --pretty=oneline 查看log,一行一行地显示
git reflog 查看git操作记录
创建ssh key
ssh-keygen -t rsa -C "youremail@example.com" //生成一对公钥id_rsa.pub 私钥id_rsa
cat ~/.ssh/id_rsa.pub //查看生成的公钥
远程仓库
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快
git remote add origin remoteUrl 远程建了一个空仓库,连接本地到远程(remoteUrl是远程仓库的地址)
git push origin master 把本地分支master 推送到远程
git clone remoteUrl 克隆一个远程已存在的仓库到本地(remoteUrl是远程仓库的地址)
标签管理
git tag tagName 为当前分支打名字为tagName的标签,默认标签是打在最新提交的commit上
git tag tagName commit_id 在commit_id上打tag,适用于忘记打tag的情况
git tag -a tagName -m "blablabla..." 打标签指定标签信息
git show tagName 查看tag的说明
git tag -d tagName 删除本地标签tagName
git push origin tagName 把标签推送到远程
git push origin --tags 推送所有标签到远程
git push origin :refs/tags/tagName 删除远程的标签tagName
git tag --list 查看所有tag
git checkout -b tagBranch tagName 检出tag代码
Git 命令进阶
修改提交message
#Commit has not been pushed online
git commit --amend
#Amending the message of the most recently pushed commit
git commit --amend
git push --force
Git rebase
#rebase 远程分支
git fetch
git rebase origin
处理conflicts
git add .
git rebase --continue
git push origin master
#rebase 本地分支
git rebase branchName
处理conflicts
git add .
git rebase --continue
git push origin master
多行注释
git commit -m '
1.one
2.two
'
查看本地分支跟踪的远程分支
git branch -vv
切换跟踪的分支
git remote rm origin
git remote add origin git@git.nonobank.com:lejiangkai/MXD.git
git push -u origin feature5.5.4
stash用法
git stash
git stash pop
git list
git stash apply stash@{3}
合并某个分支的单个文件
git checkout targetbranch
git checkout needMergeBranch -- needMergeFileName
如: 分支test上有一个文件A,你在test1分支上, 此时如果想用test分支上的A文件替换test1分支上的文件的话,可以使用
git checkout test1
然后
git checkout test -- A
未完待续......
网友评论