GIT 详解

GIT使用总结
git分为工作区 暂存区 版本库

完成一次代码提交:
1.git add :将工作区修改添加到暂存区
2.git commit -m “” :将暂存区的修改提交到版本库
3.git add -u [ ]: 把 中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件。
省略 表示.,即当前目录
4.git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件
5.git add 目录:添加指定目录下的变化
查看:
1.git status:查看变更的文件
2.git diff 文件:查看该文件在工作区做了哪些修改
3.git diff HEAD – 文件:表示文件在暂存区和当前最新版本库中的区别
4.git log : 查看版本库的提交记录
撤销,回退:
1.git reset --hard HEAD^:回退版本库到上一个版本
git reset --hard 版本号
2.git checkout – 文件:将文件在工作区的修改全部撤销(如果文件已经在暂存区了,然后又修改了,再checkout就会回到和暂存区一样)
3.git reset HEAD 文件:将暂存区的文件撤回到工作区(如果不想提交,就将文件放到工作区)
分支
1. git branch :查看当前所有分支
2. git branch -r :查看远程所有分支 -a查看本地和远程的所有分支
3. git checkout -b 分支 :新建一个分支并跳转到该分支
4. git checkout 分支:切换到一个分支
5. git merge 分支:合并指定分支到当前分支 get merge origin/master:在本地分支上合并远程master分支
6. git checkout -b newBrach origin/master:在远程主机的master分支的基础上在本地创建一个newBranch分支
7. git branch --set-upstream master origin/next:手动创建本地master分支和远程next分支之间的关联关系
8. git branch -d 分支:删除本地分支
9. git branch -D 分支:强制删除分支(有提交,未合并前要删除,必须用这个强制删除)
10. git clone https://github.com/jquery/jquery.git 将远程仓库克隆到本地, 如果要另外取目录名,则加 第二个参数 本地目录名
git fetch
1.git fetch <远程主机名> <分支名> :将远程主机的版本库的某个分支更新到本地
2.git fetch<远程主机名> :将远程主机的版本库更新到本地
git pull
1.git pull <远程主机名> <远程分支名>:<本地分支名>:取回远程主机某个分支的更新,再与本地的指定分支合并(如果远程分支是与当前分支合并,则冒号及后面的部分可以省略)
git push
1.git push <远程主机名> <本地分支名>:<远程分支名>:将本地分支的更新,推送到远程主机(如果后者不存在,则会被新建)
git push -f <远程主机名> <本地分支名>:<远程分支名>:将本地修改强行弄到远程git上覆盖
git push origin master:把本地master推送到远程master
远程
1.git remote [-v]:查看远程信息
2.git branch --set-upstream-to origin/创建本地分支和远程分支间的链接关系
.gitignore文件
git config --add core.filemode false :忽略掉文件权限检查
git check-ignore -v App.class:用来查看文件在gitignore文件中的规则应用情况
git add -f App.class:强制添加文件到git中,即使被忽略了
规则:
1)/mtk/ 过滤整个文件夹
2) .zip 过滤所有.zip文件
3)/mtk/do.c 过滤某个具体文件
4) !
.zip 加!表示不过滤
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
.gitignore规则不生效的解决办法
把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交:

git rm -r --cached . :将当前目录下所有文件的追踪删除.
git add .
git commit -m ‘update .gitignore’

还有一种做法是,手动将文件给清除追踪
git update-index --assume-unchanged PATH 在PATH处输入要忽略的文件。
git update-index --no-assume-unchanged PATH 恢复跟踪

删除文件
1.git rm 文件. git rm -r 文件夹
2.git commit -m ‘’
3.git push
当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用
git rm --cached file_path
git commit -m ‘delete remote somefile’
git push
修复bug
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
先在dev分支上完成需求,突然需要修改bug,就先git stash把工作现场存起来,这样git status就是干净的.再进行切换到哪个分支去创建bug处理的分支,如切换到master.就在master上创建bug分支,处理提交和,合并到master分支.然后再删除bug分支.最后再切换到dev分支,这时,工作区是干净的,通过git stash list可以看到当前存的现场的列表,通过两种方式:git stash apply恢复后,stash内容并不删除,你需要用git stash drop来删除; git stash pop,恢复的同时把stash内容也删了.如果有多个stash,可以用git stash apply stash@{0},回复到指定工作区

多人协作:
多人协作的工作模式通常是这样:
1.首先,可以试图用git push origin 推送自己的修改;
2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3.如果合并有冲突,则解决冲突,并在本地提交;
4.没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值