常用命令
git init 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行
cat .gitignore 查看.gitignore的内容即查看忽略哪些文件
git config --list 查看git配置
git status 查看当前git仓库状态 已暂存和未暂存的更新
git add . 将所有未跟踪的文件加到暂存区
git rm a.txt 删除a.txt文件(跟踪清单和工作区都删)
git rm --cached a.txt 删除a.txt文件(跟踪清单中删除,工作目录下还有)
git commit 进入vim模式 第一行填写提交信息 填写完成后按esc 退出 :wq 保存退出。
git commit -m "aaa" 提交 aaa为本次提交的信息
git commit -a 提交所有 包括还没有暂存的 跳过git add 步骤
git reset HEAD <file>... 取消某一个文件的暂存
git reset --hard ID 回退某一版本 id为 commit id。
git log 查看提交记录
git log -p -2 -p 选项展开显示每次提交的内容差异,用 -2则仅显示最近的两次更新:
git remote 命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为 origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库
git remote -v 显示对应的克隆地址
git branch -a 查看所有分支
git branch a 新建a分支
git merge b 分支 合并b分支内容到当前的分支
git checkout a 切换到a分支
git branch -d a 删除本地a分支
git push origin --delete a 删除远程分支a
git push origin 本地分支名:远程分支名
git push (远程仓库名) (分支名)
git push origin dev
取出本地的 dev分支,推送到远程仓库的 dev 分支中去
git push origin local_branch:remote_branch 推送本地local分支内容到远程remote分支
git push origin :remote_branch,local_branch留空的话则是删除远程remote_branch分支。
远程先开好分支然后拉到本地
git checkout -b feature-branch origin/feature-branch //检出远程的feature-branch分支到本地
本地先开好分支然后推送到远程
$ git checkout -b feature-branch //创建并切换到分支feature-branch
$ git push origin feature-branch:feature-branch //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支(没有会自动创建)
git remote show pb 查看某个远程仓库的详细信息,比如要看克隆的 pb仓库
git remote rm pb 删除远程仓库
git checkout master file_name //放弃当前对文件file_name的修改
$ git checkout .
这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子.
注意:在使用git checkout 时,如果其对应的文件被修改过,那么该修改会被覆盖掉。
查看本地标签:
git tag
新建标签:
git tag -a v2.0.40 -m "v2.0.40"
推送所有标签:
git push --tags
删除本地标签:
git tag -d 标签名
事实上Git 的推送和删除远程标签命令是相同的,删除操作实际上就是推送空的源标签refs:
推送某个标签
git push origin 标签名
相当于
git push origin refs/tags/源标签名:refs/tags/目的标签名
所以,删除远程标签可以把源标签为空:
git push origin :refs/tags/标签名
在Git v1.7.0 之后,可以使用这种语法删除远程标签:
git push origin --delete tag 标签名
远程仓库的使用
拉取github上的代码到本地
方式一:
在要存放的目录下:执行
git clone git://github.com/paulboone/ticgit.git github上的clone地址 从无到有
方式二:
在要存放的目录下:执行
git init
git remote add pb git://github.com/paulboone/ticgit.git 添加远程仓库 该仓库在本地名字为pb(可更改)
拉取远程分支并创建本地分支
git checkout -b 本地分支名x origin/远程分支名x
使用该方式会在本地新建分支x,并自动切换到该本地分支x。
git fetch origin 远程分支名x:本地分支名x
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。
Git中从远程的分支获取最新的版本到本地有这样2个命令:
- git fetch:相当于是从远程获取最新版本到本地,不会自动merge
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上 之后再进行比较合并 - git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge在实际使用中,git fetch更安全一些因为在merge前,我们可以查看更新情况,然后再决定是否合并。
上传github代码
git remote add origin git@github.com:InstanceFeiben/Test.git(git@github.com:InstanceFeiben/Test.git为SSH地址,在GitHub上复制)命令将本地仓库与远程仓库取得关联,最后在通过git push -u origin master命令将代码push到GitHub。