Git命令行大全:http://mp.weixin.qq.com/s/hYjGyIdLK3UCEVF0lRYRCg
http://www.yiibai.com/git/git_pull.html
升级git版本
git --version // 查看当前git版本
git update-git-for-windows // 升级git版本
分支
Github仓库默认有一个master分支
开发过程中接到新的功能需求
创建一个新的分支同步开发互不影响
开发完成后,合并merge到主分支上
git branch new_branch // 创建一个新的分支
git checkout new_branch // 切换分支
git checkout -b new_branch // 新建一个分支并立即切换到新分支上
git branch -al // 查看当前所有的分支(分支列表)
git merge new_branch // 合并分支
git push // 上传到github仓库
- 删除分支【合并分支之后把无用的分支删掉】,查看分支=》删除=》再查看对比
$ git branch -D new_branch
- 删除远程分支: $ git push origin --delete mo 【假设有远程分支 remotes/origin/mo】
- 大家在删除远程分支后,还是可以看到已删除的远程分支,时间一长就显的非常乱了
git branch -al
以下是解决方法:
git remote show origin //可以看到删除分支情况
git remote prune origin
再执行
git branch -al
tips:
- 错误:refusing to merge unrelated histories.
将new_branch分支的文件合并到master分支上
$ git merge new_branch --allow-unrelated-histories
- 将改动提交到某一个分支上
$ git push --set-upstream origin kailas
版本回退
git log // 查看git提交记录
git reset --hard 6e234234e45dret34sdrfe34rerewr43 // 将版本回退到6e234234e45dret34sdrfe34rerewr43
git log // 再次查看记录,此时HEAD指向之前回退的版本
git push -f // 因为已经推上去的版本,远程版本比本地的要旧,此时必须pull后才能push, 这里使用 -f 强制上传覆盖远程版本
git强制覆盖:
git fetch --all
git reset --hard origin/master
git pull
git强制覆盖本地命令(单条执行):
git fetch --all && git reset --hard origin/master && git pull
第一个是:拉取所有更新,不同步;
第二个是:本地代码同步线上最新版本(会覆盖本地所有与远程仓库上同名的文件);
第三个是:再更新一次(其实也可以不用,第二步命令做过了其实)
用户
// 查看当前仓库user
git config user.name
git config user.email
// 修改当前仓库user
git config user.name ShariseMo
给本地文件夹添加git
git init #创建git依赖
git touch .ignore #创建.gitignore文件,不提交到github上面去
.gitignore 是 git ignore 规则,该文件的内容是一些规则,作用是告诉git有哪些文件不需要添加到git版本管理中。在实际项目中,有很多的文件是不需要版本管理的,例如一些包含密码的配置文件等。
常用规则:
(1) /node_modules/ : 过滤掉整个node_modules文件夹
(2) *.doc : 过滤掉所有的 .doc 的文件
(3) /aa/.doc : 过滤某个具体的文件
在这些前面加上 ! 感叹号,则表示仅添加这些文件 eg:!/aa/.doc
/public/* // 忽略public的
!/public/index.php //不忽略index.php这个文件
git add
git commit -m "init"
git remote add origin 你的github仓库地址
git push
- $ git remote rm origin 清除已连接的远程仓库
- $ git remote -v // 查看远程连接了哪些仓库
- $ git remote add origin 你的github仓库地址 // 添加远程连接git
解决冲突
-
当Git上面两者上传的代码有冲突的时候,
并入新的配置项
git stash
git pull
git stash pop
直接用代码库中的代码完全覆盖本地代码
git reset --hard
git pull
解决每次提交都需要输入账号密码的方案
git add 的一些用法
- $ git add . // 提交被修改的和新建的文件,但不包括被删除的文件
- $ git add -u --update // update tracked files 更新所有改变的文件,即提交所有变化的文件
- $ git add -A --all // add changes from all tracked and untracked files 提交已被修改和已被删除文件,但是不包括新的文件
- $ git add file_1 file_2 file_3 //添加多个文件到暂存区,以空格隔开
add的文件多了,想清掉add的文件 - $ git reset HEAD . // 若什么都不加 , 则是清除掉暂存区所有add的文件
- $ git reset HEAD xxxxx/xx.aa.php // 清除掉add的某一个文件
- $ git reset --soft HEAD^ // commit之后想撤回
git 添加gitignore无效
$ git rm --cached ./vendor/ -r
https://blog.csdn.net/u010940300/article/details/49204597
获取公钥
cat ~/.ssh/id_rsa.pub
设置别名的文件
vim ~/.bashrc
vim ~/.zshrc