一、基本操作
0、克隆分支/克隆指定分支
方式一:
git clone http://myrepo.xxx.com/project/.git
后面:
git checkout -b dev origin/dev
方式二:
git clone -b (分支项目名) http://myrepo.xxx.com/project/.git
1、新建一个项目需要初始化才能有master分支
git add .
git commint -m 'xx'
2、分支操作
创建分支: git branch mybranch
切换分支: git checkout mybranch
查看本地/远程分支: git branch -a / git branch -r
创建并切换分支: git checkout -b mybranch
创建切换到分支并和远程分支建立联系 git checkout -b dev origin/dev
删除本地分支:git branch -d mybranch
删除远程分支:git push origin :mybranch 或 git push origin --delete mybranch
推送本地分支到远程分支(远程分支与本地分支同名):
git push origin mybranch:mybranch
让本地分支与远程分支建立关联:
git branch --set-upstream-to=origin/mybranch
3、拉取/推送 远程分支
1)远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch
git push
2)远程已有remote_branch分支但未关联本地分支local_branch且本地已经切换到local_branch
git push -u origin/remote_branch
3)远程没有remote_branch分支并,本地已经切换到local_branch
git push origin local_branch:remote_branch
4) push并设置关联分支
git push --set-upstream origin newbranch:origin/branch
5)拉取分支
git pull origin mybranch
4、合并分支
git merge dev
删除已经add的文件
gir rm --cached 文件名
二、常见问题
1、在github上只能删除仓库,却无法删除文件夹或文件, 所以只能通过命令来解决
首先进入你的master文件夹下, Git Bash Here ,打开命令窗口
$ git pull origin master # 将远程仓库里面的项目拉下来
$ dir # 查看有哪些文件夹
$ git rm -r --cached .idea # 删除.idea文件夹
$ git commit -m '删除.idea' # 提交,添加操作说明
$ git push -u origin master # 将本次更改更新到github项目
三、git log 查看提交记录
1. git log 查看提交历史记录
2. git log --oneline 或者 git log --pretty=oneline 以精简模式显示
3. git log --graph 以图形模式显示
4. git log --stat 显示文件更改列表
5. git log --author= 'name' 显示某个作者的日志
6. git log -p filepath 查看某个文件的详细修改
7. git log -L start,end:filepath 查看某个文件某几行范围内的修改记录
8. git log --stat commitId 或者 git show --stat commitId 查看某一次提交的文件修改列表
输入Q退出
四、文件跟踪与取消跟踪
git 不能直接add 文件夹,可以取消跟踪文件夹
所以可以git add .
然后再取消跟踪指定的文件夹或者文件
git rm -r --cached 文件夹 // 取消跟踪,不删除本地文件
git rm -r --f 文件夹 //取消跟踪,删除本地文件
git rm --cached 文件
git rm --f 文件
五、基本概念
Workspace: 工作区,就是你平时存放项目代码的地方
Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
六、.gitignore文件
git项目中不想被跟踪的文件,可通过此文件设置;包括日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。
书写规范:
- 所有空行或者以注释符号 # 开头的行都会被 Git 忽略
- 可以使用标准的 glob 模式匹配
- 匹配模式最后跟斜杠(/)说明要忽略的是目录
- 要忽略指定模式以外的文件或目录,可以在模式前加上感叹号(!)进行取反
可以在任意目录下创建相应的.gitignore
文件,然后再使用以下命令配置Gitgit config --global core.excludesfile ~/.gitignore
七、其他命名
git commit --amend 修改commit的提交信息
八、高阶操作
1、本地git目录重新关联git 地址
cp -r demo demo.zip
git remote set-url origin https://github.com/demo.git