取得项目的git仓库
两种方法:①在显存的目录下,通过导入所有文件里来创建新的git仓库②从已有的git仓库克隆出一个新的镜像仓库
从当前目录初始化
git init
如果当前目录下有几个文件想要纳入版本控制,先用git add命令添加,然后提交
git add *.c
git add readme
git commit -m 'this is commit message'
从现有仓库克隆
git clone [url]
如果希望在克隆的时候,自己定义要新建的项目目录名称,可以指定
git clone [url] [name]
检查文件状态
git status
忽略某些文件
创建一个名为.gitignore文件,列出要忽略的文件模式
.[oa]
*~
第一行忽略所有以.o或者.a结尾的文件
第二行忽略所有以~结尾的文件
查看已暂存和未暂存的文件
要查看尚未暂存的文件更新了哪些部分,不加参数直接输入git diff
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异
若要查看已经暂存起来的文件和上次提交时的快照之间的差异,可以用
git diff --cached (新版本允许使用git diff --staged,效果一样)
提交更新
git commit
追加-m参数,提交说明
跳过使用暂存区
git commit -a
移除文件
git rm
如果删除之前修改过并且已经放到暂存区域,则必须使用强制删除选项-f
仅移除跟踪但不删除本地文件
git rm --cached
移动文件(改名)
git mv file_from file_to
查看提交历史
git log
-p展开显示每次提交的内容差异
-2仅显示最近的两次更新
--stat仅显示简要的增改行数统计
--pretty=oneline将每个提交放在一行显示
--since=2.weeks列出所有最近两周内的提交
要同时满足多个选项,需要--all-match
撤销操作
修改最后一次提交 git commit --amend
取消已经暂存的文件 git reset HEAD <file>
取消对文件的修改 git checkout --<file>
远程仓库
查看当前的远程仓库 git remote
加上-v选项显示对应的地址(verbose)
添加远程仓库 git remote add [shortname] [url]
要抓取远程仓库有而本地仓库没有的信息,可以运行git fetch [remote-name]
如果是克隆了一个仓库,次命令会自动将远程仓库鬼域origin名下,所以git fetch origin会抓取上次fetch以后别人提交的更新
git pull从原始克隆的远端仓库中抓取数据后,合并到工作目录中当前的分支
推送数据到远程仓库 git push [remote-name] [branch-name]
查看远程仓库信息 git remote show [remote-name]
远程仓库的删除和重命名 git remote rename git remote rm
打标签
显示已有标签 git tag
新建标签 含附注的(annotated) git tag -a
签署标签 git tag -s
验证标签 git tag -v [tag-name]
分享标签 git push origin [tagname]
git命令别名
以后输入git commit 只需要键入 git ci
创造新的命令
git config --global alias.unstage 'reset HEAD --'
这两条命令相同
git unstage file1
git reset HEAD file1
经常设置last命令 git config --global alias.last 'log -1 HEAD'
运行某个外部命令,只需要在命令前加上!就行
启动gitk
git config --global alias.visual "!gitk"