版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013420428/article/details/77772274
###git download
[https://git-scm.com/downloads]
#repo:
repo命令参数:
abandon Permanently abandon a development branch
branch View current topic branches
branches View current topic branches
checkout Checkout a branch for development
cherry-pick Cherry-pick a change.
diff Show changes between commit and working tree
diffmanifests Manifest diff utility
download Download and checkout a change
forall Run a shell command in each project
gitc-delete Delete a GITC Client.
gitc-init Initialize a GITC Client.
grep Print lines matching a pattern
help Display detailed help on a command
info Get info on the manifest branch, current branch or unmerged branches
init Initialize repo in the current directory
list List projects and their associated directories
manifest Manifest inspection utility
overview Display overview of unmerged project branches
prune Prune (delete) already merged topics
rebase Rebase local branches on upstream branch
selfupdate Update repo to the latest version
smartsync Update working tree to the latest known good revision
stage Stage file(s) for commit
start Start a new branch for development
status Show the working tree status
sync Update working tree to the latest revision
upload Upload changes for code review
version Display the version of repo
#git:
git命令参数:
add clone fetch-pack ls-files notes remote-http stash
add--interactive column filter-branch ls-remote
p4 remote-https status
am commit fmt-merge-msg ls-tree pack-objects remote-testsvn stripspace
annotate commit-tree for-each-ref mailinfo pack-redundant repack submodule
apply config format-patch mailsplit pack-refs replace subtree
archive count-objects fsck merge patch-id request-pull symbolic-ref
bisect credential fsck-objects merge-base prune rerere tag
bisect--helper credential-cache gc merge-file prune-packed reset unpack-file
blame credential-cache--daemon get-tar-commit-id merge-index pull rev-list unpack-objects
branch credential-store grep merge-octopus push rev-parse update-index
bundle daemon hash-object merge-one-file quiltimport revert update-ref
cat-file describe help merge-ours read-tree rm update-server-info
check-attr diff http-backend merge-recursive rebase send-pack upload-archive
check-ignore diff-files http-fetch merge-resolve receive-pack sh-i18n--envsubst upload-pack
check-mailmap diff-index http-push merge-subtree reflog shell var
check-ref-format diff-tree imap-send merge-tree relink shortlog verify-pack
checkout difftool index-pack mergetool remote show verify-tag
checkout-index difftool--helper init mktag remote-ext show-branch web--browse
cherry fast-export init-db mktree remote-fd show-index whatchanged
cherry-pick fast-import instaweb mv remote-ftp show-ref write-tree
clean fetch log name-rev remote-ftps stage
git常用命令:
The most commonly used git commands are:
add Add file contents to the index
bisect Find by binary search the change that introduced a bug
branch List, create, or delete branches
checkout Checkout a branch or paths to the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
grep Print lines matching a pattern
init Create an empty Git repository or reinitialize an existing one
log Show commit logs
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
rebase Forward-port local commits to the updated upstream head
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
show Show various types of objects
status Show the working tree status
tag Create, list, delete or verify a tag object signed with GPG
#Android repo版本管理相关操作:
repo 构建本地版本管理:
//$repo init -u <url> [OPTIONS]
/**在当前目录下初始化repo,会在当前目录生生成一个.repo目录,像Git Project下的.git一样,-u指定url,可以加参数-m指定manifest文件,默认是default.xml,.repo/manifests保存manifest文件。.repo/projects下有所有的project的数据信息,repo是一系列git project的集合,每个git project下的.git目录中的refs等目录都是链接到.repo/manifests下的。**/
$repo init xxxxx // 初始化repo
$repo sync //同步远程仓库代码,下载代码。
$repo start newbranch --all //创建repo分支 --all所有manifest project, 也可以指定project.
$repo checkout otherbranch //检出到otherbranch分支,
$repo diff //显示差异,只对已跟踪的文件有效,
$repo status //显示当前分支状态
第一个字符表示暂存区的状态。
- no change same in HEAD and index
A added not in HEAD, in index
M modified in HEAD, modified in index
D deleted in HEAD, not in index
R renamed not in HEAD, path changed in index
C copied not in HEAD, copied from another in index
T mode changed same content in HEAD and index, mode changed
U unmerged conflict between HEAD and index; resolution required
每二个字符表示工作区的状态
letter meaning description
- new/unknown not in index, in work tree
m modified in index, in work tree, modified
d deleted in index, not in work tree
$repo prune <topic> //删除已经merge的分支
$repo abandon <topic> //删除分支,无论是否merged,比较危险,建议少用!!!
$repo branch或repo branches //查看所有分支
$repo upload //上传本地提交至服务器
//$repo forall [PROJECT_LIST]-c COMMAND
//对指定的Project列表或所有Project执行命令COMMAND,加上-p参数可打印出Project的路径。
//repo遍历所有project 执行git 命令操作
$repo forall -c <git command>
$repo forall -c git merge other // 将other分支合并到当前分支
$repo forall -c git branch -m oldname newname //重命名分支
$repo forall -c git branc -D branchname //删除分支
$repo manifest //可以根据当前各Project的版本信息生成一个manifest文件
$repo manifest -o - //查看manifest 清单
###git代码审核:
可以使用下面的配置来关闭代码检查:
git config core.autocrlf true
git config core.safecrlf true
还可以在提交代码时禁止代码检查:
git commit --no-verify-a
也可以这样做:
git config core.whitespace “trailing-space,space-before-tab”
git config apply.whitespace “trailing-space,space-before-tab”
还有另外一个办法,就是在pre-commit添加如下语句:
if(/\s$/){#bad_line(“trailing whitespace”, $_);}
退回到某一提交:(要慎用会删掉退回处之前的所有提交)
git reset --hard <commit_id>
取消跟踪已版本控制的文件
git 不再追踪文件改动 git update-index --assume-unchanged filePath
git 恢复追踪文件改动 git update-index —no-assume-unchanged filePath
git 删除被管理的文件 git rm —cached filePath
git 删除被管理的文件夹 git rm -r -f —cached filePath
Git 是一个很好的版本控制工具,当然驾驭起来相比 SVN 要稍微复杂一些。初入 Git,难免有一些问题。比如我们不小心将某个文件加入了版本控制,但是突然又不想继续跟踪控制这个文件了,怎么办呢?
其实方法也是很简单的。使用git update-index 即可。
不想继续追踪某个文件
git update-index --assume-unchanged your_file_path
如果想再次继续跟踪某个文件
git update-index --no-assume-unchanged your_file_path
提交当前目录git仓库到远端服务器:
git remote add origin in http://192.168.199.111:9090/git/xxx/xxx_linux.git
git push -u origin master
保存用户密码:
git config --global credential.helper store
查看远端分支:
git branch -r
fetch远程demo分支到本地test分支,(test分支原先并不存在)
git fetch origin demo:test