Git的配置与使用
一,未配置过git
1.1,安装Git
https://git-for-windows.github.io/
1,2,鼠标右键点击Git Bash Here
1.3,输入命令
- cd ~/.ssh/ 【如果没有对应的文件夹,则执行 mkdir ./.ssh】
- git config --global user.name "******"
- git config --global user.email "*******"
- ssh-keygen -t rsa -C "*******" (******* 就是上面输入的邮箱)
二,已配置过git
直接生成:ssh-keygen -t rsa -C ‘邮箱’
三,git 连接远程仓库
3.1,本地创建新项目,然后与git关联
1 #创建新文件夹 2 mkdir xxx 3 #进入 4 cd xxx 5 #初始化Git仓库 6 git init 7 #提交改变到缓存 8 git commit -m 'description' 9 #本地git仓库关联GitHub仓库 10 git remote add origin git@github.com:Test 11 #提交到GitHub中 12 git push -u origin master
3.2,克隆git仓库的代码
1 #从Git仓库上克隆项目到本地 2 git clone git@ip/域名:项目文件名称 #注意克隆的时候直接在仓库根目录即可, 不用再创建项目根目录 ; 3 #对比本地仓库与远程仓库的不同 4 git giff 5 #添加文件 6 git add . # 将目录中所有文件添加; 7 #查询是否成功添加到缓存 8 git status 9 #提交缓存 提交可以写提交描述 10 git commit -m '提交'; 11 #从远程GitHub仓库拉取 12 git pull 13 #提交到远程GitHub仓库 14 git push -u origin master ; 15 #获取提交日志 16 git log;
四,git常用命令
4.1,远程仓库操作命令
- 克隆仓库:$ git clone git://github.com/jquery/jquery.git
- 查看远程仓库:$ git remote -v
- 添加远程仓库:$ git remote add [name] [url]
- 删除远程仓库:$ git remote rm [name]
- 修改远程仓库:$ git remote set-url --push[name][newUrl]
- 拉取远程仓库:$ git pull [remoteName] [localBranchName]
- 推送远程仓库:$ git push [remoteName] [localBranchName]/git push origin/master
4.2,分支(branch)操作命令
- 查看本地分支:$ git branch
- 查看远程分支:$ git branch -r
- 创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
- 切换分支:$ git checkout [name]
- 创建新分支并立即切换到新分支:$ git checkout -b [name]
- 删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
- 合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
- 创建远程分支(本地分支push到远程):$ git push origin [name]
- 删除远程分支:$ git push origin :heads/[name]
- 提交分支作为远程的分支:$ git push origin test:master // 提交本地test分支作为远程的master分支 //好像只写这一句,远程的github就会自动创建一个test分支;$ git push origin test:test // 提交本地test分支作为远程的test分支
- 删除远程的分支:$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
4.3,版本(tag)操作命令
- 查看版本:$ git tag
- 创建版本:$ git tag [name]
- 删除版本:$ git tag -d [name]
- 查看远程版本:$ git tag -r
- 创建远程版本(本地版本push到远程):$ git push origin [name]
- 删除远程版本:$ git push origin :refs/tags/[name]
4.4,子模块(submodule)操作命令
- 添加子模块:$ git submodule add [url] [path]
- 如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
- 初始化子模块:$ git submodule init ----只在首次检出仓库时运行一次就行
- 更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下
- 删除子模块:(分4步)
1)$ git rm --cached [path]
2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
3) 编辑“.git/config”文件,将子模块的相关配置节点删除掉
4) 手动删除子模块残留的目录
4.5,git忽略文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如:
1 # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 3 # dependencies 4 /node_modules 5 6 # production 7 /dist 8 9 # misc 10 .DS_Store 11 npm-debug.log* 12 .idea
4.6,其他操作命令
回退到指定版本:git reset --hard 27da9167665拉取指定分支代码:git clone -b dev_zj http://1.1.1.11/service/tmall-service.git
服务上未创建分支时提交代码:git push --set-upstream origin test
删除本地分支: git branch -d [branchname]
删除远程分支: git push origin --delete [branchname]
更改本地和远程分支的名称:
1 git branch -m old_branch new_branch # Rename branch locally 2 git push origin :old_branch # Delete the old branch 3 git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote
五,git配置代码比较与合并工具
1,下载安装 meld
Meld官网 点击下载
2,修改.gitconfig文件
两种方式:
1.1. 在git bash 命令行使用命令修改
1.2. 直接修改.gitconfig文件
1 [diff] 2 tool = meld 3 [difftool "meld"] 4 cmd = ""D:/Meld/Meld.exe" "$LOCAL" "$REMOTE"" 5 [merge] 6 tool = meld 7 [mergetool "meld"] 8 cmd = ""D:/Meld/Meld.exe" "$LOCAL" "$REMOTE""