文章目录
- 创建版本库
- 分支
- 回退上个版本
-
- 标签
- 多人协作
- 查看各种情况
- 忽略文件
- 常见错误和处理方案
-
- deleted: file
- error: failed to push some
参考链接
最棒的github练习链接,走过路过别错过
下载链接https://pc.qq.com/detail/13/detail_22693.html
创建版本库
ssh-keygen #输入后要一系列回车,将公钥复制在 https://github.com/settings/profile 具体配置看https://blog.csdn.net/tuesdayma/article/details/72615868?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control
git remote add origin [email protected].com:XXX/learngit.git #远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库、也可以使用https:协议关联
git push -u origin master #加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。 用过一次之后,后面只要本地作了提交,就可以通过命令git push origin master
git init
git add file1.txt
git add file2.txt file3.txt
git commit -m "first commit"
分支
git branch 分支名 #创建分支
git branch -d 分支名 #如果合并了可以用该方法删除分支,没有合并就需要强制删除即用-D
git branch #查看有哪些分支
git switch 分支名 #切换到对应的分支,旧版本也可以用git checkout 分支名来切换
git merge 分支名
与分支类似的操作
该方法不需要合并,但内容已经合并过去了;这就像男人精神出轨一样
回退上个版本
git reflog #查看版本id
git reset -hard id号 #id号只写前几位即可
标签
一般为了方便,也常常使用tag来替代ID号, 注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。 ;
“请把上周一的那个版本打包发布,commit号是6a5819e…”
“一串乱七八糟的数字不好找!”
如果换一个办法:
“请把上周一的那个版本打包发布,版本号是v1.2”
git tag v1.0 f52c633 #创建标签,git tag v1.0命令是在最新的版本打上标签,如果要指定版本要加上ID号
git tag -d v0.1 #删除标签
git tag #查看标签;注意,标签不是按时间顺序列出,而是按字母排序的
#同样标签也需要推送
git push origin <tagname>
git push origin --tags #一次性推送所有标签
多人协作
一开始只有master分支,另一个伙伴已经创建一个dev分支,并且在里面推送了内容;自己如果需要同步他的dev就要
git branch --set-upstream-to=origin/dev dev
git pull #拉下最新分支
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
查看各种情况
git status
查看仓库提交还是没有提交;
git diff file1.txt
查看未提交的但放在仓库中的版本和提交的版本修改了哪些内容
git log
查看历史提交日志、分支情况;
git remote -v
git remote -v查看远程库信息:
忽略文件
有些时候,你想添加一个文件到Git,但发现添加不了,原因是这个文件被.gitignore忽略了:
$ git add App.class
The following paths are ignored by one of your .gitignore files:
App.class
Use -f if you really want to add them.
如果你确实想添加该文件,可以用-f强制添加到Git:
$ git add -f App.class
或者你发现,可能是.gitignore写得有问题,需要找出来到底哪个规则写错了,可以用git check-ignore命令检查:
$ git check-ignore -v App.class
.gitignore:3:*.class App.class
Git会告诉我们,.gitignore的第3行规则忽略了该文件,于是我们就可以知道应该修订哪个规则。
常见错误和处理方案
deleted: file
分析:add了但在工作区又删除了该文件
这时候应该与工作区保持一致,那就使用
git rm file.txt
命令,将暂存区的内容也删掉
error: failed to push some
如果在第一步中创建时已经初始化过项目,则这时会提醒 error: failed to push some refs to ‘https://github.com/daoke0818/testGit2.git’ hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., ‘git pull …’) before pushing again. hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.
因为远程库中已经存在readme文件了,所以需要先pull下来。命令如下: $ git pull origin master