一些常用的GIT命令


git init

将一个空的文件夹进行初始化

git config --global user.email username@email.com
git config --global user.name "username"

设置提交代码时显示的用户名和邮箱,--global表示全局的git设置

git config --global core.autocrlf false

签入和签出代码时,是否自动对换行符进行转换。因为Windows和Linux对换行符的定义不同,可能导致代码内容有问题。

git remote add origin user@gitrepos
git remote set-url origin user@gitrepos

设置/添加远程分支的地址

git config --list

列出当前respository的全部设置

git fetch

从当前分支取得代码

git pull --rebase

将remote的代码与本地代码进行merge。--rebase的意思是让merge代码的时候,无需加注释则不加注释,让整个分支更加简洁。

git clone user@gitrepos

从server克隆代码到本地,会包含对应的GIT信息

git config core.sparsecheckout true

配置sparsecheckout,通过这个配置选项可以让GIT只从server上抓取自己需要的代码

配置文件在.git/info/sparse-checkout

git checkout [branch]

切换分支

如果是git checkout . 则表示撤销所有修改内容

git add .

将所有改动的文件加入track

git reset

将加入track的文件(git add)撤销

git commit .

将所有改动的文件(tracked, modified)commit到当前分支(本地)

git push

将本地的改动推送到server

git branch -a

列出全部分支,包括从server同步过来的远程分支

git checkout -b

创建新的本地分支

git commit -m

commit的时候直接写入注释,而无需再打开一个注释文档

git push --set-upstream origin

为没有关联远程分支的本地分支设置一个远程分支。

当从一个已有关联远程分支的本地分支上再拉出一个分支,且对这个新分支进行push的时候,会有提示说没有关联的远程分支

git push -d origin

删除远程分支。慎用!!!

git fetch  -p

删除不存在的远程分支。(不是很懂)

git branch -d 

删除本地分支

 git diff  

比较两个分支的区别

git reset --hard HEAD

回退版本到HEAD。HEAD即指向当前版本。即回退所有修改。(如果修改了大量文件,使用该命令可能导致所有修改都消失且无法挽回)。参考

gitk --all

在Windows下打开GUI界面以查看分支树

git log --oneline

单行显示修改记录

git merge 

将另一个分支与当前分支合并

Git