Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。
Git常用操作命令:
$ git clone git://github.com/jquery/jquery.git 检出仓库
$ git remote -v 查看远程仓库
$ git status 查看当前状态
$ git branch 查看本地分支
$ git branch -r 查看远程分支
$ git branch [name] 创建本地分支–注意新分支创建后不会自动切换为当前分支
$ git branch branch_0.1 master 从主分支master创建branch_0.1分支
$ git branch -m name newname 将name重命名为newname
$ git branch -d 删除某个分支
$ git branch -D 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
$ git checkout [name] 切换分支
$ git checkout -b [name] 创建新分支并立即切换到新分支
$ git fetch先更新 再 git checkout -b [本地分支] origin/[远程分支] 将远程分支映射到本地命名
$ git fetch <远程主机名> <分支名>
$ git fetch 相当于是从远程获取最新版本到本地,不会自动merge
$ git fetch origin # 获取远端库最新信息
$ git difforigin/ # 然后和远程分支做比较
$ git merge [name] 合并分支: ----将名称为[name]的分支与当前分支合并
$ git pull <远程主机名> <远程分支名>:<本地分支名>
$ git pull origin [name] 拉取远程分支更新并合并
$ git push <远程主机名> <本地分支名>:<远程分支名>
$ git push origin [name] 推送本地分支并合并到远程[name]分支(如果远程没有则创建远程分支)
$ git push origin :[name] 删除远程分支
$ git commit -a -m “log_message” (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
$ git push origin # 创建远程分支, origin是远程仓库名
$ git push origin: # 创建远程分支
$ git push origin : #先删除本地分支(git br -d),然后再push删除远程分支
$ git push -f origin 强行覆盖线上的分支,这样就不会造成线性的log记录错误
git add # 将工作文件修改提交到本地暂存区
git add . # 将所有修改过的工作文件提交暂存区
git rm # 从版本库中删除文件
git rm–cached # 从版本库中删除文件,但不删除文件
git reset 回滚add操作
git reset # 从暂存区q恢复到工作文件
git reset – . # 从暂存区恢复到工作文件
git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
相当于回滚哦<针对暂缓区>
git reset --hard 66fe1b37e3dbbf5c9f13b46bdf2d3ebe71534ff2
git reset HEAD # 命令用于取消已缓存的内容git reset HEAD – hello.php
git push origin master --force 最后必须强制推送
生成新的commit,原来的会保留。代码也会生成对用的版本,这是跟reset最大的区别<针对版本号>
git revert <KaTeX parse error: Expected 'EOF', got '#' at position 8: id> #̲ 撤销某次版本的操作 git …id1> <$id2> # 比较两次提交之间的差异
git diff [branchA] [branchB] # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息
查看提交记录
git log
git log # 查看该文件每次提交记录
git log -p # 查看每次详细修改内容的diff
git log -p -2 # 查看最近两次详细修改内容的diff
git log --stat #查看提交统计信息
暂存代码不提交切换分支
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
版本(tag)操作相关命令
查看版本:$ git tag
创建版本:$ git tag [name]
删除版本:$ git tag -d [name]
查看远程版本:$ git tag -r
创建远程版本(本地版本push到远程):$ git push origin [name]
删除远程版本:$ git push origin :refs/tags/[name]
合并远程仓库的tag到本地:$ git pull origin --tags
上传本地tag到远程仓库:$ git push origin --tags
创建带注释的tag:$ git tag -a [name] -m ‘yourMessage’
忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如
target
bin
*.db
删除 untracked files
git clean -f
连 untracked 的目录也一起删掉
git clean -fd
连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd