git 配置
git config —global user.name "ALguojian"
git config —global user.email "jzhszy@foxmail.com"
git常用命令
-
git branch -m devel develop (重命名本地分支名字,命名之后,直接提交到远程,然后需要将本地和远程分支同步一次)
-
git branch --set-upstream-to=origin/develop (同步本地和远程连接)
-
git rm -r –cached . (删除在git管理中文件的缓存)
-
mkdir test
(创建文件夹test) -
cd test
(切换到test目录) -
touch a.md
(新建a.md文件) -
git init
(初始化git仓库)默认在master分支 -
git status
(查看状态) -
git add
(缓存,待提交) -
git add .
(添加所有文件) -
git add -u
(将文件的修改、文件的删除,添加到暂存区) -
git add -A
(将文件的修改,文件的删除,文件的新建,添加到暂存区) -
git rm --cached
(删除缓存) -
git fetch origin
(自动获取更新远程分支) -
git commit
(提交) git commit -m "第一次提交" -
git commit -am "提交信息"
(所有的改动都更新到缓存区并提交,相当于git add .和git commit -m 的合并) -
git log
(commit记录) -
git branch
分支(查看本地分支) -
git branch -r
(查看远程分支列表) -
git checkout develop origin/develop
(远程的 develop 分支迁到本地) -
git checkout -b develop origin/develop
(把远程分支迁到本地顺便切换到该分支) -
git branch a
(创建分支 a) -
git checkout a
(切换到 a 分支) -
git checkout -b a
(创建并切换到 a分支) -
git merge a
(合并分支 a 到主分支)合并之前先切换到master分支(在master执行) -
git rebase a
(合并分支a)(在a分支处理) -
git rebase -i <commitID>
(删去那些无关紧要的提交,整理提交记录) -
git rebase side another
合并another分支到side分支上,并且提交记录在最前端 -
git commit --amend -m "这是新的提交日志"
修改上次提交日志
merge只是合并另外一个分支的内容,rebase也合并另外一个分支的内容,但是会把本分支的commits顶到最顶端。具体可以查看下面的说法
https://www.zhihu.com/question/36509119/answer/67828312
http://www.cnblogs.com/kidsitcn/p/5339382.html
http://blog.csdn.net/fybon/article/details/52460516
-
git branch -d a
(删除分支 a ) -
git branch -D a
(强制删除分支a,针对于 a 有代码没有合并到master,git branch -d a 删除不了) -
git push --delete origin devloper
(删除远程分支) -
git tag v1.0
(建立版本1.0,查看历史版本) -
git checkout v1.0
(切换到1.0版本) -
git stash
(把当前分支所有没有commit的代码暂时保存起来(执行了add 也无所谓)) -
git stash list
(查看暂存区的记录) -
git stash apply
(回到暂存之前) -
git stash drop
(回来之后建议删除stash记录) -
git stash pop
(回到暂存之前,并删除记录) git stash clear
是清空所有暂存区的记录,drop 是只删除一条,当然后面可以跟 stash_id 参数来删除指
定的某条记录,不跟参数就是删除最近的,而 clear 是清空。
-
git rebase -i HEAD~4
(改变之前4次提交的顺序) -
git reset HEAD~a
(回退到某一个版本)(reset只在本地使用,远程推送建议使用revert
会再提交一个新的纪录,该记录引入更改--这些更改刚好就是用来撤销上次提交的,回到上次提交之前的状态) -
git reset HEAD^
(回退到上一个版本) -
git reset HEAD^^
(回退到上上个版本) -
git reflog
(回退错了,前进) -
git revert HEAD
(撤销上次提交,用于远程推送)
添加SSH
在git bash 输入 ssh-keygen -t rsa
生成文件,github创建新的SSH并填入,之后输入 ssh -T git@github.com
测试是否添加成功
推送或者下拉(先pull再push)
git push origin master
推送
git pull origin master
下拉
git pull origin master --allow-unrelated-histories
git push -f origin master
更新
git clone git@github.com:ALguojian/test.git
下载github上面的项目到本地
关联giuhub仓库
git remote add origin https://github.com/ALguojian/git_study.git
origin
就是仓库名字,建议名字和远程仓库一样,较易管理
git remote -v
查看该项目有哪些仓库
git push origin master
提交代码可以到 master
分支,或者其他分支
git remote rm "origin"
删除origin
远程仓库
alias 配置 简短参数
git config --global alias.c checkout
git config --global alias.cm commit
git config --global alias.st status
git config --global alias.br branch
git config -l
查看所有配置
补充,移动到其他提交记录,即HEAD
的指向
git checkout a
不仅用于切换分支还可用于切换提交记录,此时a代表提交记录的哈希值(很长),不过只需要前几位即可
- 使用
^
向上移动 1 个提交记录 - 使用
~<num>
向上移动多个提交记录,如~3
^
后面加数字标识回到父类其他分支用法:
git checkout HEAD~; git checkout HEAD^2; git checkout HEAD~2
并且还支持链式操作:
git checkout HEAD~^2~2
所以master^
相当于“master
的父节点”。master^^
是 master
的第二个父节点,也可以将 HEAD
作为相对引用的参照,可以一直使用 HEAD^
向上移动
git branch -f master HEAD~3
将 master 分支强制指向 HEAD 的第 3 级父提交(强行改变分支所处位置)
git cherry-pick C2 C3 C4
(改变提交记录与主分支,C2是提交的记录的哈希值)
git fetch
同步绑定的仓库(一般是其他分支)
git pull
就是 git fetch
和 git merge <just-fetched-branch>
的缩写!
git fakeTeamwork foo 3
模拟远程提交,可以指定分支和次数
网友评论