Git 开发中使用到的命令
Git 命令
查看分支
查看远程分支
git branch -a
查看本地分支
git branch
查看远程地址
git remote -v
更换远程地址
git remote set-url origin 新的地址
添加新分支
git checkout -b 新分支名
切换本地分支
git checkout 分支名
还原代码至某个版本
git reset --hard 版本号
如果不加版本号,默认恢复上一个版本
用户
查看用户名和邮箱地址:
$ git config user.name
$ git config user.email
修改用户名和邮箱地址
$ git config --global user.name "xxxx"
S git config --global user.email "xxxx"
版本回退
git reset --hard
版本回退到某个提交,后面可以接版本号
git log
查看日志
git reflog
查看提交记录
diff
diff --git a/111.txt b/111.txt
表示比较工作目录与暂存区两个文件,并给两个文件编号a与b
Git提交代码的流程
拉取代码
git pull
将远程的代码下载到你本地,与你本地的代码合并
推送代码
git push
将你的代码上传到远程的code仓库
代码提交流程
单独提交:
添加–> 提交->更新代码–>推送代码
1 添加
git add .
. 的意思是将你本地所有修改了的文件添加到暂存区
2 提交
git commit -m " "
" " 里表示这次提交的内容,方便以后查看
该命令是将暂存区里的改动给提交到本地的仓库(将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中
3 更新本地代码
git pull origin 远程分支名
将远程最新的代码先跟你本地的代码合并一下
如果确定远程没有更新,可以不用这个,最好是每次都执行以下,完成之后打开代码查看有没有冲突,并解决,如果有冲突解决完成以后再次执行1跟2的操作
4 推送代码
git push origin master(git push origin 本地分支名:refs/remotes/远程分支名)
将代码推至远程仓库
合作提交:
1 暂存
git stash
把当前未提交的修改暂存起来,让仓库还原到最后一次提交的状态
2 更新代码
git pull origin 远程分支名
3 合并
git stash pop
从stash列表中删除单个已隐藏的状态,并将其应用到当前工作树状态的顶部
(将第一步暂存的代码释放出来,相等于将你修改的代码与下拉的代码合并)
然后解决冲突,你本地的代码将会是最新的代码
4 添加提交
git add .
git commit -m ""
git push origin master(git push origin 本地分支名:refs/remotes/远程分支名)
5 可选更新
git pull origin 远程分支名
可以最后再pull一下,确保远程的全部拉下来,保证当前是最新的资源
git stash 的使用
git stash
可用来暂存当前正在进行中的工作
git stash list
列出您暂存区中当前拥有的stash项
git stash apply stash@{1}
就代表把指定版本号为stash@{1}的工作取出来
git stash clear
清空暂存区stash
git stash pop 和 git stash apply 的不同:
apply 读取暂存区的数据,通过apply后,暂存区的数据依然存在。
pop 是取出最新的一次暂存数据,pop后,暂存区就不会存在这次数据了
生产中遇到的场景
1.想pull 最新代码, 又不想加新commit
或者修复一个bug,修完以后想继续原来的工作,可以这样
- 先暂存
git stash
2.做工作 比如 pull 代码,修改bug
3.合并
git stash pop
2.git stash pop取出备份的时候出现冲突
比如有个文件login.java,,你修改了一段代码,git stash保存以后,你从服务器上继续git pull了别人的代码,如果此时,别人的代码也修改了login.java
此时当我们使用git stash pop 的时候,就会发生冲突,因为我们的修改不是基于最新的pull下来的文件的基础上。。所以git很难判断,
解决方法:
备份我们修改后的文件,删除程序文件中我们所做的修改,重新pull,然后在用我们备份好的文件替换掉,再push上去即可。。
详细参考:Git常用命令及方法大全
别人的代码,如果此时,别人的代码也修改了login.java
此时当我们使用git stash pop 的时候,就会发生冲突,因为我们的修改不是基于最新的pull下来的文件的基础上。。所以git很难判断,
解决方法:
备份我们修改后的文件,删除程序文件中我们所做的修改,重新pull,然后在用我们备份好的文件替换掉,再push上去即可。。
详细参考:Git常用命令及方法大全