查看配置
git config --list
配置用户信息
git config --global user.name "zhang" ( global 表示对所有项目起作用)
git config --global user.emal "zhang@qq.com"
git config --global core.filemode false 关闭对文件模式修改的跟踪(mac 下有用,),文件模式,比如 权限和所有者
添加文件
git add filename ( 用 * 表示所有文件),修改文件后,同样用此命令将修改过的文件添加到 暂存区
查看文件状态
git status (会列出所有文件的状态)
git status filename (某个文件的状态)
克隆项目
git clone git://github.com/schacon/grit.git (默认项目的文件夹名为 grit )
git clone git://github.com/schacon/grit.git
mygrit
(此时项目的文件夹名为 mygrit)
忽略对某些文件的跟踪
编写 .gitignore 文件(位置暂时不知道)
*.txt 忽略该目录下 .txt 的文件
*[oa] 忽略以 o 或 a 结尾的文件名 (正则)
log/ 忽略 log 目录下的文件
!rz.log 不忽略 rz.log 文件 ( ! 表示非)
以上规则可以组合使用,该文件的规则是 shell 的简单正则形式
差异比较
git diff
比较未暂存的和已暂存的差异
git diff --cached 比较这次工作(已暂存)和上次提交之间的差异
提交
git commit 提交时默认启动 vi 编辑器输入 log 信息
git commit -a 提交时跳过暂存区域,即不需要 git add 添加文件了
移除文件
git rm filename 移除文件
git rm --cached filename 移除仓库中版本管理但不删除工作目录中的文件(
取消跟踪
)
移动文件
git mv file_from file_to 同目录下即为重命名文件
查看提交历史记录
git log
所有的记录
git log filename 某一个文件的记录
从远程仓库抓取数据
git fetch [remote-name] 从远程仓库获取数据,不会自动与本地合并
git pull 从远端下载数据到本地,并自动合并(需要配置)
推送数据到远程端
git push [remote-name] [branch-name] 将本地的数据推送到远程 例如 : git push origin master 将 master 推送到 origin
创建远程仓库(两种方法)
1、 mkdir test.git
cd test.git
git init --bare
2、 git init --bare test.git
查看远程仓库的信息
git remote show [remote-name]
?更新获取某一个文件/文件件夹
git checkout origin path
回滚某个文件
git reset 版本号 pathfile 回退到指定版本
git checkout pathfile 检出文件(切换分支)
移动或重命名文件、文件夹
git mv soursefile targetfile
分支管理
git branch 查看分支
git branch branchName 创建分支
git branch -d branchName 删除分支
git checkout branchName 切换分支
设置分支追踪的远程分支
git checkout branchName 切换到 branchName 分支
git branch --set-upstream-to=origin/remote_branch local_branch 将本地的 local_branch 分支追踪远程 remote_branch 分支
将本地分支推送到远程分支
git push origin develop:develop 将develop分支推送到远程
应用
1、忽略本地文件,直接覆盖
git fetch --all
git reset --hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并git reset 把HEAD指向刚刚下载的最新的版本
2、重命名
git mv -f oldfolder newfolder
git add -u newfolder (-u选项会更新已经追踪的文件和文件夹)
git commit -m "changed the foldername whaddup"
git mv foldername tempname && git mv tempname folderName (在大小写不敏感的系统中,如 windows,重命名文件的大小写,使用临时文件名)
git mv -n foldername folderName (显示重命名会发生的改变,不进行重命名操作)