git config --global user.name "18521517220" --配置git用户名
git config --global user.email "18521517220@163.com" --配置git邮箱
git config --list --查看git配置信息
ssh-keygen --生成公钥和私钥(密钥的存放位置:C:\Users\v_chengkui\.ssh)
git init --本地生成一个空的仓库
下载分支到本地仓库:
git clone -b svn/ebbp_1-0-9_BRANCH ssh://v_chengkui@icode.baidu.com:8235/baidu/wallet-sh-life/ebbp(克隆名为svn/ebbp_1-0-9_BRANCH的分支,如果不指定,则克隆master分支)
git add file(*) --将工作区修改的文件(包括新增的)添加到暂存区
git status --查看当前仓库的状态
git commit -m --<提交时填的备注信息> 将暂存区文件提交到本地版本库
git log --查看你提交过的记录(就是commit过的记录)
eg:
885207fa648e4508f9ba480e51a02f085cea0b2f (HEAD -> dev, origin/dev) update schedule-time
85b04e4769fca66f7f98fec9a6f0e5324d88b4ea code review
85b04e4769fca66f7f98fec9a6f0e5324d88b4ea 就是版本号
git push origin master 将本地版本库添加到远程版本库
git reflog 查看git的执行命令记录
git branch dev 创建名为dev分支
git checkout dev 切换到dev分支
git checkout -b dev 创建并切换到dev分支
git checkout -b dev origin/dev 在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致;
git branch -a --查看所有分支
git merge dev --在master分支上合并dev分支
git branch -D <name> 强行删除分支
git remote -v 查看远程仓库的信息
git pull 从远程仓库拉文件更新本地,如果git pull
提示no tracking information
,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
。
git diff filename --查看文件修改的内容
git reflog --记录每一次命令
git checkout -b branch-name origin/branch-name,在本地创建分支和远程分支对应的分支。本地和远程分支的名称最好一致;
git --no-ff merge -m .... --禁用fastforward模式,用普通模式合并,合并后的历史有分支
git branch --set-upstream branch-name origin/branch-name,建立本地分支和远程分支的关联
git checkout -- 文件名 将工作区对文件的修改撤销
git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区,撤销git add .的操作
git reset --hard <版本号> 回滚到指定提交的某个记录(回滚commit的记录),撤销git commit 的操作
eg:git reset --hard 85b04e4769fca66f7f98fec9a6f0e5324d88b4ea
git rm filename --用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
将本地仓库关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
eg:
git init
git add text.txt
git commit --m "add ext.txt"
git remote add origin git@github.com:18521517220/learngit.git
git push -u origin master
git push origin master:refs/for/master [第一个master是本地分支名称]
git push <远程主机名> <本地分支名>:<远程分支名>
git push <远程主机名> <本地分支名>如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建
git pull是<远程分支>:<本地分支>
多人协作的工作模式通常是这样:
-
首先,可以试图用
git push origin <branch-name>
推送自己的修改; -
如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; -
如果合并有冲突,则解决冲突,并在本地提交;
-
没有冲突或者解决掉冲突后,再用
git push origin <branch-name>
推送就能成功!
git打标签:
git tag:
git tag -a 0.1.3 -m “Release version 0.1.3″
详解:git tag 是命令
-a 0.1.3是增加 名为0.1.3的标签
-m 后面跟着的是标签的注释
打标签的操作发生在我们commit修改到本地仓库之后。完整的例子
git add .
git commit -m “fixed some bugs”
git tag -a 0.1.3 -m “Release version 0.1.3″
分别提交标签到远程服务器上
git push origin master
git push origin <tagname> 或者git push origin --tags
–tags参数表示提交所有tag至服务器端,普通的git push origin master操作不会推送标签到服务器端。
删除标签的命令
git tag -d 0.1.3
删除远端服务器的标签
git push origin :refs/tags/0.1.3
查看所有标签:
git tag
给过去的某个commit打标签:
git tag v0.9 f52c633
查看标签信息:
git show <tagname>
如果有些敏感的文件不想提交,那么可以在git的根目录下面创建一个.gitignore文件,然后要把我们要忽略的文件添加进去就行了,
eg:
*.class
*.ini
给git命令起别名:
git config --global alias.ci commit
以后就可以使用git ci代替git commit