环境
git config --global user.name "user name"
git config --global user.email "name@email.com"
ssh-keygen -t rsa -b 4096 -C "name@email.com"
文件管理
大文件管理
git lfs
操作
git checkout -b
git checkout -b 本地分支名 origin/远程分支名ls
单独更新某个文件
git fetch
git checkout origin/remote_branch -- path/to/file
git branch
git branch -a
git branch -vv
删除本地分支
命令行 : $ git branch -d
强行删除
git branch -D
git reset --sofr HEAD^ //只取消commit。不取消add
git reset --mixed HEAD^ //取消commit和add,但是不删除本地代码
git reset --hard HEAD^ //取消commit和add,且删除代码
git rebase
操作可以把本地未push的分叉提交历史整理成直线,目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
git rebase –abort
git rebase –i
可以进入编辑模式 比如合并哪几个commit
git fetch
git pull
上传
git push:
git push origin branchLocalA:branchRemoteB
公共库管理
管理git工程的公共管理库。
添加子库
为当前工程添加submodule,命令如下:
git submodule add -b 字库分支 仓库地址 路径
git submodule add -b master git@sublib.git sublib
仓库地址是指子模块仓库地址,
路径指将子模块放置在当前工程下的路径
注意:路径不能以 / 结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利 Clone)
命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模块的信息。添加完成以后,再将子模块所在的文件夹添加到工程中即可。
删除
submodule的删除稍微麻烦点:
首先,要在“.gitmodules”文件中删除相应配置信息。
然后,执行“git rm –cached ”命令将子模块所在的文件从git中删除。
下载的工程带有submodule
当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:
git submodule update --init --recursive
即可将子模块内容下载下来后工程才不会缺少相应的文件。
修改子模块URL
修改.gitmodules中对应的url属性
使用git submodule sync同步一下
回滚
找到上次git commit的 id
git log
找到你想撤销的commit_id
git reset --hard commit_id
完成撤销,同时将代码恢复到前一commit_id 对应的版本。
git reset commit_id
完成Commit命令的撤销,但是不对代码修改进行撤销,可以直接通过git commit 重新提交对本地代码的修改
分支
建立当前分支与远程分支的映射关系:
git branch -u origin/addFile
或者使用命令:
git branch --set-upstream-to origin/addFile
撤销本地分支与远程分支的映射关系
git branch --unset-upstream
合并
git merge
git cherry-pick 某个commit id // 把某个commit id的提交合并到当前分支.
想看到最近一次提交所有更改的细节
对应命令 git log -n 1 -p
查看
git diff //查看尚未暂存的改动
git diff --cached //查看已经暂存的与上次提交的区别
忽略文件权限属性
git config core.filemode false
git仓库删除所有提交历史记录
1.Checkout
git checkout --orphan latest_branch
2. Add all the files
git add -A
3. Commit the changes
git commit -am "commit message"
4. Delete the branch
git branch -D master
5.Rename the current branch to master
git branch -m master
6.Finally, force update your repository
git push -f origin master