git入门命令及合作技巧

来源:互联网 发布:mac os系统简介 编辑:程序博客网 时间:2024/06/05 04:25

      • 一本地git管理
      • 二远程仓库github使用
      • 三分支管理
      • 四标签
      • 五自定义git

一、本地git管理

//1.初始化git根目录git init
//2.添加文件到暂存区git add file
//3.提交git commit -m "commit message"
//4.查看仓库状态,是否有修改git status
//5.查看仓库修改了什么git diff
//6.想要回退前查看之前啊的提交记录,查看提交历史 --pretty=oneline表示简化信息git log --pretty=online
//7.回退到前面的版本 HEAD^,HEAD~100表示回退到前100个版本git reset --hard HEAD^
//8.查看命令历史,用于回到未来的某个版本git reflog
//9.撤销工作区修改,其中"--"必不可少,与后面的分支管理有区别git checkout -- <file>//1.该文件还未add到stage,则撤销修改//2.该文件已经add到stage,又作了修改,则撤销就回到add时的状态(1->add->2,回到1
//10.撤销暂存区修改,即add到stage之后又不想add了git reset HEAD <file>
//11.删除文件到stage,对比git add,还需要git commit才能真正删除git rm 

二、远程仓库github使用

//1.在用户主目录下创建.ssh文件夹,含有id_rsa(私钥)和id_rsa.pub(公钥)ssh-keygen -t rsa -C "youremail@example.com"
//2.登录Github,打开Account settings,SSH Keys 页面,将id_rsa.pub文件的内容Add SSH Key,填上任意title
//3.关联本地仓库到github的远程仓库(需要知道github远程仓库的地址git@github.com:SSSimo/learngit.git)git remote add origin git@github.com:SSSimo/learngit.git
//4.把本地master分支的最新修改推送至GitHub(第一次推送的时候加-u,之后推送可以不加,-u参数添加origin为默认主机)git push -u origin master
//5.从远程仓库clone一个项目到本地git clone 远程仓库地址

三、分支管理

//1.创建dev分支,然后切换到dev分支git checkout -b dev
//git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:git branch devgit checkout dev
//2.用git branch查看当前分支git branch
//3.切换分支git checkout branch_name
//4.合并分支,当前为master,合并dev分支(fast-forward)git merge dev
//5.删除dev分支git branch -d dev
//6.当多分支有冲突时不能fast-forward,要先解决冲突
//7.使用带参数的git log 查看分支提交情况git log --graph --pretty=oneline --abbrev-commit
//8.禁用fast-forward,在合并时会新建一个commit记录,这样,从分支历史上就可以看出分支信息git merge --no-ff -m "merge with no-ff" dev
//9.查看分支提交记录,同7
//10.分支现场保护,保持当前分支的当前工作区,此时可以去别的分支进行一些别的bug修复工作git stash
//11.回复分支中的保护现场,bug修复后继续回复被保护的现场1.  git stash list      //查看被保护现场的列表2.1 git stash apply     //恢复现场,但不删除stash的内容2.2 git stash pop       //恢复现场,同时删除stash的内容2.3 git stash apply stash@{0}   //应用指定现场2.4 git stash drop stash@{0}    //删除指定现场
//12.删除还没有合并的分支git branch -D branch_name
//13.开发新功能和修复bug最好新建一个分支,开发完成以后合并到父分支,并删除子分支
//14.查看远程仓库名字(默认为origin)git remote 
//15.推送本地分支到远程仓库对应的分支git push origin master //将本地master推送到origin远程仓库的master分支上git push origin dev
//16.抓取分支(刚刚clone下来的项目中只有master分支)git checkout -b dev origin/dev
//17.有时候在github上误操作了,删除远程仓库的一个分支git push origin :branch_name
//18.设置本地分支与远程分支的关联后才能pull下来合并git branch --set-upstream-to=origin/dev dev
//19.从远程仓库pull下来试图合并,需要先checkout到需要pull合并的分支git pulll   //试图合并远程仓库的对应分支

多人协作的工作模式通常是这样:

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

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream-to=origin/dev dev。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。

四、标签

tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。

//1.创建一个标签git tag v1.0
//2.查看所有标签git tag
//3.为某个commit打标签,加上commit_idgit tag v0.9 6224937
//4.查看标签信息git show <tag_name>
//5.创建带有说明的标签git tag -a v0.1 -m "version 0.1 released" 3628164
//6.推送标签到远程仓库git push origin v1.0git push origin --tags //一次性推送所有标签
//7.删除远程仓库的标签git tag -d v0.9 //先从本地删除git push origin :refs/tags/v0.9

五、自定义git

//1.设置开发者的名字git config user.name "yourname"
//2.设置开发者邮箱git config user.email "youremail"
//3.让git显示颜色git config --global color.ui true
//4.忽略特殊文件创建.gitignore文件参考https://github.com/github/gitignore
//5.强制添加需要被忽略的文件git add -f <file>
//6.检查是哪个规则忽略了要add的文件git check-ignore -v <file>
//7.设置命令的别名git config --global alias.st statuseg:git config --global alias.unstage 'reset HEAD'   //撤销提交到stage之后的文件修改
原创粉丝点击