git init 初始化,创建 git 仓库
git status 查看 git 状态 (文件是否进行了添加、提交操作)
git add 文件名 添加,将指定文件添加到暂存区
git commit -m '提交信息' 提交,将暂存区文件提交到历史仓库
git log 查看日志( git 提交的历史日志)
git config --global user.name "lulu"
git config --global user.email qq2221692@sina.com
生成密钥
ssh-keygen -t rsa -C "your_email@youremail.com"
.ssh目录下会生成两个文件id_rsa、id_rsa.pub,id_rsa文件保存的是私钥,保存于本地,id_rsa.pub文件保存的是公钥,需要将里面内容上传到远端仓库。
mac获取方法
- 获取密匙字符串
- 输入cd指令,进入当前用户目录
- 输入ls -a指令,查看当前用户目录下所有文件,包括隐藏文件
- 输入cd .ssh指令,进入.ssh目录
- 输入ls指令,查看.ssh目录下的文件
- 输入cat id_rsa.pub指令,查看id_rsa.pub文件中内容
弹窗输入用户名密码
gitee
wearesmile
qaz
查看分支列表:
git branch
切换分支
git checkout 分支
新建分支
git checkout -b 分支名
删除分支:
git branch -d 分支名
合并分支
一般在进行git操作的时候出现Already up to date.问题有两种情况
1.当前分支的文件和远程仓库的文件不统一,这时候就需要将远程仓库的文件同步到本地仓库后再merge
1 .切换到主干
git checkout master
2. 更新主干代码
git pull origin master
3. 切换回分支
git checkout feature/20170527_894373_inventory_order_export_1
4. 执行合并操作
git merge master
这样就对了,剩下的就是解决冲突,然后提交代码
二、本地仓库有新增的文件没有add和commit
git add .
git commit -m "描述信息"
git merge 要合并的分支名 # 重新合并分支
git push origin 远程分支名 # 提交合并后的数据
git强制覆盖
git fetch --all
git reset --hard origin/master
git pull
git强制覆盖本地命令(单条执行):
git fetch --all && git reset --hard origin/master && git pull
第一个是:拉取所有更新,不同步;
第二个是:本地代码同步线上最新版本(会覆盖本地所有与远程仓库上同名的文件);git reset 指令把HEAD指向master最新版本
第三个是:再更新一次(其实也可以不用,第二步命令做过了其实)
用git pull来更新代码的时候,遇到了下面的问题:
error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.js Please, commit your changes or stash them before you can merge. Aborting
出现这个问题的原因是其他人修改了xxx.php并提交到版本库中去了,而你本地也修改了xxx.js,这时候你进行git pull操作就好出现冲突了,解决方法,在上面的提示中也说的很明确了。
1、保留本地的修改 的改法
1)直接commit本地的修改
2)通过git stash
git stash git pull git stash pop
通过git stash将工作区恢复到上次提交的内容,同时备份本地所做的修改,之后就可以正常git pull了,git pull完成后,执行git stash pop将之前本地做的修改应用到当前工作区。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
2、放弃本地修改 的改法
git reset --hard git pull