/New beginning Good results/
本地仓初始化
git init:初始化git仓库,会生成.git(存放本地库相关子目录和文件,不要删除和修改)
设置签名:项目级别/仓库级别:仅在当前本地仓库范围有效:
git config
系统用户级别:登录当前操作系统的用户范围:
git config --global
优先级:项目级别优先于系统用户级别
例:
git config --global user.name “xxx”
git config --global user.email “xxx@xxx.cn”
=======================================================================================================
本地仓查看版本,回退版本
git status:状态查看
查看每个版本的提交信息,回退版本
git log --oneline
git reflog
git reset id(id为版本号)
git reset id 等同于下面的回退方式:
git reset --hard 索引值
git reset --hard HEAD^ 往前退一步
git reset --hard HEAD^^ 往前退两步 等同于 git reset --hard HEAD~2
git使用reset回退版本后找不到最新版本的解决办法:
git fsck --lost-found 找出当前被丢弃的提交
git show id
git reset id 或者 git reset --hard id
提交后,查看哪些文件有修改
git log --name-status
本地仓从暂缓区撤销文件
git reset 文件名
git rm --cached:从暂缓区撤回git add的文件
工作区撤销单个文件修改:
git checkout 文件名
工作区撤销全部文件修改:
git checkout . (注意checkout后面加英文字符点)
=======================================================================================================
本地分支
2.分支:
git branch -v:查看分支
git branch [name]:创建分支
git checkout [name]:切换分支
git checkout -b [name]:创建name分支并切换到此分支
git branch -D [name]:删除本地name分支
git push origin --delete [name]:删除远程name分支
git branch -vv:查看本地分支与远程分支的关系
查看分支别名:git remote -v
取别名:git remote add [别名] [地址]
3.本地分支与远程分支:
本地分支存在,远程分支存在,但之间没有关联:git push -u [远程分支] 举例:git push -u origin master
本地分支存在,但远程分支不存在:git push origin [本地分支]:[远程分支] 举例:git push origin local_branch:origin_master(本地分支名可以与本地分支名一样)
git push origin t1_pro_dev:t1_pro_dev_cwh
拉取远程分支到本地分支:
git checkout -b 本地分支xxx origin/远程分支xxx 本地与远程分支 建立了连接
git fetch origin 远程分支xxx:本地分支xxx 本地与远程分支 不会建立连接,分支也保留在原本地分支上
删除远程分支:(1)推送一个空分支到远程分支,就相当于删除远程分支:git push origin :[远程分支]
(2)直接删除:git push origin --delete [远程分支]
#本地分支与远程分支关联: git branch --set-upstream 本地分支 origin/远程分支
本地分支与远程分支关联: git branch --set-upstream-to=origin/<分支> <本地分支>
4.分支合并:
(1)切换到接收修改的分支(主分支)
(2)git merge [分支名]
合并冲突:
(1)编辑文件,删除特殊符号
(2)把文件修改到满意的程度保存退出
(3)git add
(4)git commit -m “log” 后面不需要加文件名
合并出现图形界面:merge信息后直接ctrl+x
=======================================================================================================
权限问题
5.chmod改变权限:
git status发现大量文件修改:
chmod 会改变文件
git config --add core.filemode false
=======================================================================================================
合并
commit合并
git rebase -i
p:
s:
s:
第一个p 后面都可以用s 来合并,不然会出现没有父commit
=======================================================================================================
远程分支
强行推送至远程分支:当本地分支落后与远程分支,需要用如下命令实现push
git push --force 强制推送
=======================================================================================================
本地仓删除一个文件,再上传至服务器
git rm test.txt
git commit “[删除] 删除 test.txt”
git push
=======================================================================================================
其他注意
本地仓新增静态库,上传服务器可能漏传,需要使用强制上传指令
git add 文件 -f