1.首先说下将代码提交到远程仓库,这里用的是在GitHub创建了一个git仓库
1.打开终端,找到要提交的项目,然后运行命令:
git remote add origin https://github.com/licuiyan/learngit.git
注意把后面的地址换成自己的仓库地址,下一步,就可以把本地库的所有内容推送到远程库上
git push -u origin master
然后根据提示输入用户名,密码,
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改
2.从远程库克隆一个本地库
git clone https://github.com/licuiyan/learngit.git
3.分支管理
我们创建dev
分支,然后切换到dev
分支:
git checkout -b dev
git branch //查看当前分支
当前分支前面会标一个*
号。
然后对dev分支修改,比如我就修改一下背景色,然后提交:git add . 该命令提交所有变化
git commit -m "改变背景色"
dev分支工作完成后,切换到主分支
git checkout master
把dev分支内容合并到当前分支也就是主分支
git merge dev
之后删除dev分支
git branch -D dev
命令如下:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
查看冲突文件:git status
查看分支合并情况:git log --graph
Git友情提醒,如果一个分支,比如feature-vulcan
分支还没有被合并的情况下想删除,如果删除,将丢失掉修改,如果要强行删除,需要使用命令git branch -D feature-vulcan
。
4.bug分支
比如开发中正在dev分支上工作,但是还没完全做完遇到bug要优先处理时解决办法:
git stash //可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
再次执行git status 发现没有需要提交的东西了
然后切回主分支,创建bug分支,处理完后,重新切回dev分支
git stash list //查看工作区
回复工作现场
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了:
5.标签管理
git tag v1.0 //打标签1.0
git tag //查看所有标签
默认标签是打在最新提交的commit上的,如果忘记打了,找到历史提交信息的commit id,在对应的上面打标签
git log --pretty=oneline --abbrev-commit //历史提交信息
git tag v0.9 6224937 //比如commit id是6224937
git tag -a v0.1 -m "version 0.1 released" 3628164 //创建带有说明的标签
git show v0.1 //看到说明文字
git tag -d v0.1 //删除标签
git push origin v1.0 //推送某个标签到远程
git push origin --tags //一次性推送全部尚未推送到远程的本地标签
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
git tag -d v0.9
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/v0.9
6.忽略特殊文件
开发中有些需要忽略不能提交的文件,比如添加cocoapods时,这是需要用到忽略特殊文件,Git就会自动忽略这些文件。需要编写.gitignore文件,可以在这个链接中生成对应的忽略文件。
添加进去就行,比如输入cocoapods,
# Created by https://www.gitignore.io/api/cocoapods ### CocoaPods ### ## CocoaPods GitIgnore Template # CocoaPods - Only use to conserve bandwidth / Save time on Pushing # - Also handy if you have a large number of dependant pods # - AS PER https://guides.cocoapods.org/using/using-cocoapods.html NEVER IGNORE THE LOCK FILE Pods/ # End of https://www.gitignore.io/api/cocoapods
参考链接:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000