git的操作命令

检测电脑是否存在ssh:

ls -al ~/.ssh

生成ssh: 

ssh-keygen -t rsa -C "your_email@example.com"

git常用的命令:

分支:

查看本地分支:git branch /  git branch -v

查看远程分支:git branch -a

查看当前详细分支信息(可看到当前分支与对应的远程追踪分支):    git branch -vv

创建分支:git branch <name>

提交该分支到远程仓库:git push origin dev

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>  (合并之后没有冲突的话记得push一遍)

删除分支:git branch -d <name>

强制删除未合并的分支:git branch -D <name>;

创建远程origin的dev分支到本地:git checkout -b dev origin/dev(创建之后还需要进行链接)

建立本地分支和远程分支的关联,使用git branch --set-upstream-to=origin/master master;

取消对远端master的跟踪: git branch --unset-upstream master

 

本地仓库:

删除工作区的文件:rm <dom_name>

删除版本库中的文件:git rm <dom_name>

提交版本库:git commit -m "描述";

查看库中所有的文件: git ls-files;

查看库中所有的文件夹: dir

增加本地仓库的文件夹: git add 文件夹名

 

远程仓库:

本地库提交到远程git仓库:git push -u origin master(本地分支名):

拉取远程库的文件到本地库: git pull origin master;

关联远程git库:git remote add origin git@github.com:GitHub账号/learngit.git:关联远程git库;

取消本地目录下关联的远程库:git remote remove origin

修改远程仓库地址:git remote rm origin >git remote add origin [url]

查看你当前项目的远程git地址:git remote -v;

查看远程的所有分支列表:git branch -a

删除远程仓库的文件夹:
删除target文件夹   :$ git rm -r --cached target   
提交,添加操作说明  :$ git commit -m '删除了target' 
将本次更改更新到github项目上去 :$ git push -u origin master 
 

创建流程:

查看版本库的地址:pwd

使用git在本地创建一个项目的过程

    $ makdir ~/hello   //创建一个项目hello
    $ cd ~/hello       //打开这个项目
    $ git init             //初始化 
    $ touch README
    $ git add README        //更新README文件
    $ git commit -m 'first commit'     //提交更新,并注释信息“first commit”
    $ git remote add origin git@github.com:gitName/hello-world.git     //连接远程github项目 
    $ git push -u origin master     //将本地项目更新到github项目上去

 

版本控制:

撤销操作:

撤销工作区(未add之前的修改)修改:git checkout -- readme.txt

撤销工作区所有的修改:git checkout . ;

把add之后的文件退回工作区,保留修改(单个文件):git reset HEAD readme.txt;

把add之后的文件退回工作区,保留修改(多个文件):git reset HEAD .;

把commit之后的文件退回暂存区,保留修改(重新提交):git commit  --amend;

把pull之后的版本退回pull之前当前分支所在的commit位置,保留commit的文件:

      通过git reflog master 查看master分支的历史变动记录,找到commit时的id,

      通过git reset --hard <id> 来进行恢复;git reset --hard master@{1}

版本操作:

回退到历史版本;git reset --hard HEAD^   所以写成HEAD~100。

指定回到未来的某个版本:git reset --hard 3628164

没有commit并被 git reset --hard 清掉的本地改动是无法通过git恢复的

储藏操作:

“储藏”当前工作现场:git stash;

如果想要应用其中一个更旧的储藏,可以通过名字指定它,像这样:git stash apply stash@{2}。 》

如果不指定一个储藏,Git 认为指定的是最近的储藏:git stash apply

查看“储藏”的工作区:git stash list;

删除“储藏”的工作区(删除最近那一次):git stash drop;

恢复“储藏”的工作区并删除stash中的内容:git stash pop;    恢复指点的stash:git stash apply stash@{n};



标签:

建立标签:git tag 《name》;

查看所有标签:git tag;

查找所有历史的commit id:git log --pretty=oneline --abbrev-commit

给对应commit打标签:git tag <name> commit_id;

查看标签信息:git show <tagname>

创建带有说明的标签,用-a指定标签名,-m指定说明文字:$ git tag -a v0.1 -m "version 0.1 released" 3628164

删除本地标签:git tag -d tag_name;

推送指定标签到远程:git push origin tag_name;

推送所有标签到远程:git push origin --tags;

删除远程标签:git push origin :refs/tags/tag_neme;

 

注意:
1.创建分支的时候工作区必须是干净的;(“储藏”当前工作现场,从而得到干净工作区创建分支解决bug)
2.如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name(git branch --set-upstream-to=origin/master master)。
3.在GitHub上配置了对应电脑的SSHkey后,对应电脑上的git才能推送到远程仓库;
4.本地库可以关联多个远程库,但是每个远程库的名称必须不一致;
5.在多人协助开发时,每个开发人员在推送自己的最新版本时,都需要确保当前版本是最新的,所以就需要先获取最新版本,也就是说需要从服务器拉取最新版本到本地。需要使用 git pull命令;然后再次使用 git push 命令推送至服务器。
6.其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。

 

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试