git clone Git仓库url
git clone Git仓库url 本地目录路径
git add
git status
git diff
git commit
git add 文件
git add .
将缓存写入仓库中。
git add是工作区->缓存区,git commit是缓存区->仓库。
git commit -m "本次提交说明":一次性将缓存区所有文件修改提交到仓库的当前分支。
git commit -m "本次提交说明"
git commit -am "本次提交说明":自动把所有已经跟踪过的文件缓存,并提交到仓库。常用于跳过git add步骤快速提交。
git commit -am "本次提交说明"
git commit --amend "本次提交说明":重新提交。此次提交代替上一次提交的结果。尤其适用于提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了的情况。
git commit --amend "本次提交说明"
git status:显示当前仓库的最新状态。
git status -s:当前仓库的最新状态的简介。
git status -s
git diff --cached
git diff 文件
git diff 文件 --cached
git diff 提交版本号1 提交版本号2
git diff 分支1 分支2
git show
git show HEAD~1
git show 提交版本号
主要用于从版本库中删除文件。
git rm 文件:把文件从版本库中删除,不再跟踪。
git rm 文件
git rm log/\*.log:将log目录下扩展名为.log的所有文件从版本库中删除,不再跟踪。通常适用于不小心把一些编译、日志、debug文件错误提交到版本库。
git rm log/\*.log
git rm -f 文件
git rm --cached 文件
git checkout -- 文件
git reset HEAD 文件
git reset --hard
git reset --hard HEAD~1
git reset --hard 提交版本号
Git的版本号是SHA1校验和,而不是用递增的1、2、3……,因为分布式的版本控制系统要确保每个用户的修改记录都是唯一的,不会发生版本号冲突的情况。
HEAD表示当前版本,HEAD^表示上一个版本,HEAD~100表示往上100个版本。
HEAD
HEAD^
git log
git log --oneline
git log --decorate
git log --graph
git log 分支名
git log 要查看的分支名branchA ^要忽略的分支名branchB
git tag
git checkout
git push --tags
git remote add
以http方式添加
git remote add origin https://github.com/daking1991/GitTest.git
以ssh方式添加
git remote add origin git@github.com:daking1991/GitTest.git
git remote:查看已配置的远程仓库,列出各远程仓库的shortname。
git remote
git remote -v:查看已配置的远程仓库的读写url。
git remote -v
// git remote -vorigin git@github.com:daking1991/GitTest.git (fetch)origin git@github.com:daking1991/GitTest.git (push)
git remote show :查看shortname对应的远程仓库的fetch和push等详细信息。
git remote show
* remote origin Fetch URL: git@github.com:daking1991/GitTest.git Push URL: git@github.com:daking1991/GitTest.git HEAD branch: (unknown)
git remote rm
git remote rename
git push
git pull :拉取远程仓库最新提交,并合并到指定的本地分支上。
git pull
git fetch:拉取远程仓库最新提交,但不会自动合并分支。
git fetch
git branch
*号
git branch -r
git branch -a
git branch 分支
git branch -d 分支
git branch -v -a
git checkout 分支
git checkout -b 分支
git merge 分支
不同分支修改了相同区块的代码时,合并分支时git会将此部分标记为冲突,需要用户手动去修改。
冲突文件内容
可用git diff查看冲突详情
冲突详情
可用git status -s查看冲突文件,状态标识为UU。
冲突文件
手动修改后,使用git add重新写入缓存区。
步骤
在某工程的根目录下,执行
git submodule add git@git.oschina.net:daking/android-client-common.git
会多出一个.gitmodules文件,此为子模块配置文件,其内容为
[submodule "android-client-common"] path = android-client-common url = git@git.oschina.net:daking/android-client-common.git # 若有多个子模块,则会有多个条目...
指定submodule在父工程中的位置
git submodule add git@git.oschina.net:daking/android-client-jni.git ./app/src/main/jni/api
指定submodule要跟踪的分支
submodule add添加的子模块默认是处于游离状态的,并不处于任何分支上。
可指定其要跟踪的分支:
git clone Git仓库路径
git submodule init
git submodule update
git clone --recursive Git仓库路径
git submodule foreach "git submodule update"
删除子模块的Git缓存,git rm --cached android-client-common/
git rm --cached android-client-common/
删除子模块的本地文件,rm -rf android-client-common/
rm -rf android-client-common/
删除与此子模块相关的配置
rm -rf .git/modules/android-client-common/ .gitmodules中的相关配置 .git/config中的相关配置
修改提交
git add .gitmodules git commit -m 'remove submodule: android-client-common' git push
git config --list
git config
git config user.name
git config --global alias.命令别名 命令
git config --global alias.unadd 'reset HEAD':使用git unadd 文件可丢弃指定文件在缓存区的修改。
git config --global alias.unadd 'reset HEAD'
git unadd 文件
git config --global alias.st status:使用git st代替git status。
git config --global alias.st status
git st
git config --global alias.co checkout:使用git co代替git checkout。
git config --global alias.co checkout
git co
git config --global alias.cm commit:使用git cm代替git commit。
git config --global alias.cm commit
git cm
git config --global alias.br branch:使用git br代替git branch。
git config --global alias.br branch
git br
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit":使用git lg输出高逼格的日志信息。
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
git lg
git lg输出高逼格的日志
git config --global alias.last 'log -1':使用git last显示最近一次的提交。
git config --global alias.last 'log -1'
git last
git last查看最近一条日志
git config --global user.name "yourname"
git config --global user.email "youremail"
--global
我的博客