克隆分支(ssh方式)

git clone git@xxx:branch.git#xxx代表服务器

设置全局的用户名和邮箱

git config --global user.name 'name'
git config --global user.email 'email'

查看已设配置

git config --list

查看远程分支的git路径

git remote -v

查看当前版本的状态(是否修改)

git status

查看日志

git log

查看具体修改

git log -p commit值
如:
git log -p dd1ea518b70795b1060589d2aeaaaef6d4ff2afc

查看n条日志

git log -n

查阅最近修改的文件

git log --stat

将日志按照格式导入到文件中

git log --pretty=format:'%h was %an, %ar, message: %s' > git.log

git log --pretty=format:'%h was %an, %ar, message: %s' > d:/git.log

#查看最近七天提交的信息
git --pretty=format:'%h was %an,%ai, message: %s' --since="7 day ago"

#查看某个人最近七天提交的信息
git log --pretty=format:'%h was %an,%ai, message: %s' --since="7 day ago" --author='joshua317'

#查看匹配grep后面字符串的最近7天提交的信息
git log --pretty=format:'%h was %an,%ai, message: %s' --since="7 day ago" |grep 'joshua317'

#查看某个人最近七天提交的部分信息
git log --pretty=format:'%ai, message: %s' --since="7 day ago" --author='joshua317'

查看修改:

git show

git show e554c39fd6144fc9358b319786598481dee1937b

拉取分支代码

1.拉取并合并
git pull

2.拉取,比较,不合并
git fetch
git diff origin/master --stat
git diff origin/master -- filename #查看更改的内容


查看本地分支:

git branch

查看远地分支:

git branch -r

查看本地分支和远程分支

git branch -a

查看各个分支最后一次提交

git branch -v

查看两个分支

git diff branch_a branch_b

创建本地分支

git branch branch_name

切换分支

git checkout branch_name

创建并切换本地分支

git checkout -b branch_name

删除文件,并把它从git的仓库管理系统中移除

git rm file

强制删除文件,并把它从git的仓库管理系统中移除

git rm -f file

删除文件夹folder,并把它从git的仓库管理系统中移除。

git rm -r folder

删除本地分支

git branch -d | -D branch_name  #-D代表强制删除

删除远程分支

git push origin --delete branch_name

推送分支

git push origin branch_name

push本地分支代码到远端服务器

git push branch_name origin/branch_name

合并分支

git merge branch_name # 将branch_name分支合并到当前分支中去

重命名分支

git branch -m|-M oldbranch_name newbranch_name #-M用来强制重命名

取远程分支并分化一个新分支(With the remote branches in hand, you now need to check out the branch you are interested in, giving you a local working copy)

git checkout -b branch_name origin/branch_name

添加文件到分支

git add file

提交文件

git commit -m '注释'

添加并提交到分支

git commit -am '注释'

显示本地分支和服务器分支的映射关系

git branch -vv

合并本地master分支到当前分支,比如当前处于dev分支,则把master上的代码merge到dev分支上

git merge master

合并远程master分支到当前分支

git merge origin/master

备注:

git merge –no-ff 可以保存你之前的分支历史。能够更好的查看 merge历史,以及branch 状态。

git merge 则不会显示 feature,只保留单条分支记录。


强制回滚命令

git reset --hard b188005656968504c81eefe202e0a04205803e51(某次提交的号)

查看标签

git tag
或者
git tag -l

打标签

git tag -a v0.01 -m "Relase version 0.0.1"

切换标签,与切换分支命令相同,用git checkout [tagname]

git checkout v0.0.1

提交标签到远程仓库,注解:就像git push origin master 把本地修改提交到远程仓库一样,-tags可以把本地的打的标签全部提交到远程仓库。

git push origin --tags

删除标签,注解:-d 表示删除,后面跟要删除的tag名字

git tag -d v0.0.1

删除远程标签,注解:就像git push origin:branch_name 可以删除远程仓库的分支branch_name一样, 冒号前为空表示删除远程仓库的tag。

git push origin :refs/tags/v0.0.1

git不区分文件名大小写解决

git mv -f myfile MyFile (推荐)
然后commit就好了。

或者修改配置

git config core.ignorecase false


删除一些 没有git add 的 文件

git clean 参数

-n 显示 将要 删除的 文件和目录
-f 删除文件
-df 删除文件 和 目录

git clean -n

git clean -df

git clean -f


使用过程中遇到的问题汇总:

1.推送的时候出现失败

$ git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@xxx:xxx.git'

解决:
git add .
git commit -am 'push'
git push origin master


2.假设存在文件或git仓库( existing folder or Git repository)

cd existing_folder
git init
git remote add origin git@yourserver:yourproject #红色部分视情况而定
git add .
git commit
git push -u origin master