代码 | 描述 |
---|---|
git config -global user.name |
"Andy" |
git config -global user.email |
"glp664186796@gmail.com" |
cd |
change directory,windows下可以直接在相应目录右键点击 Git Bash here |
touch .gitignore |
创建ignore文件 |
git init |
进入项目目录后在当前目录创建.git本地仓库 |
git add . |
把工作目录下所有文件添加进来 |
git commit -m"First commit" |
commit 带 message,忘记-m""会进入vim模式 |
git status |
显示有更改的文件,会标明还没被add的更改和已经被add,to be committed的更改 |
git checkout texts/readme.txt |
discard changes in working directory,这个适用于还没add的,如果已经添加,则需要用reset 先撤销添加,然后再checkout |
$ git reset HEAD texts/readme.txt |
撤销已add的修改,将HEAD指向版本写入缓存区 |
$ git log |
查看 commit 记录 (commit id, author, date, dscp.) |
$ git log <commit id>-1 -p |
单条记录详细信息 |
git log --oneline |
一行展示信息 |
git log --pretty=oneline |
简练信息 |
git branch |
查看分支, *master代表当前工作分支为master主干 |
git branch 1.0 |
创建分支 |
git branch -D 1.0 |
删除分支 |
git branch version1.0 git checkout version1.0
|
switched to branch 'version1.0,切换工作分支 完成代码改动后如果需要merge到master中则 |
git checkout master git merge version1.0
|
切换到master,再merge version1.0 |
✅git merge --no-ff git diff HEAD^ HEAD
|
更推荐的merge,能够从master视角看出该分支 更改前后的区别。 |
git log --graph --oneline |
以图的形式展示出版本历史 |
git reset --hard HEAD~2 |
代码回滚到上一个版本,最后一次commit的节点会被删除,log中看不到,但是在reflog中可以查看到 |
git reset --mixed HEAD~2 |
作用同上,作用域不同 |
以上这些都是在单机上操作的,在进入到远程仓库之前需要搞清楚本地仓库的机制,了解工作区(working)、暂存区(stage)、版本库中HEAD指向的某个branch或master 的关系
详细介绍的原文:http://www.runoob.com/git/git-workspace-index-repo.html
以下开始联系远程仓库(remote repositories)
代码 | 描述 |
---|---|
git remote -v |
--verbose 简写,显示对应的克隆地址 |
git branch -r |
显示远程分支 |
git clone https://github.com/Shuo-Lin/function-test.git |
将远程仓库直接克隆到当前工作目录,产生一个function-test文件夹,这时对应的远程仓库地址存在变量origin中 |
git push origin master |
本地修改后可push到 oringin的master分支中 |
git fetch origin master |
把mater分支下的东西取过来,会存放到origin/master分支上 |
git diff origin/master |
这时可以通过diff命令来查看远程版本库上到底修改了哪些东西 |
git merge origin/master |
把fetch下来的远端仓库merge到当前分支中 |
git pull origin master |
fetch+merge到当前分支中(当前分支不一定是本地的master) |
git remote add name https://github.com/user/project.git |
添加remote repository |
git push 远程主机名 本地分支名:远程分支名 |
远程主机名是origin或其他 两个分支名通常是一样的,所以最后一个分支名通常被省略,如果远端仓库不存在相同的分支名而你省略了,默认会在远端创建一个新的同名分支 |
git push origin :refs/for/linshuo's git push origin --delete linshuo's
|
省略了本地分支名,相当于推送一个空的分支远程分支,等价于删除语句 |
git push -u origin master |
上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push 了。 |
网友评论