1、克隆代码
git clone (-b remote_branch_name) url
2、提交代码
1)查看当前本地分支有哪些文件进行了修改:
git status
2)添加指定文件到暂存区:
git add local_file_name1 local_file_name2 …
如果需要添加文件夹,则使用:
git add local_dir_name
如果添加当前目录下的所有文件,则使用:
git add .
3)提交暂存区内容到本地仓:
git commit -m "message"
4)提交本地仓代码到远程仓:
git push remote_host_name local_branch_name:remote_branch_name
如果local_branch_name和remote_branch_name相同,则上述命令可以省略最后面的:remote_branch_name
3、回退
(1)git add回退
git status
git reset HEAD (local_file_name)
(2)git commit回退
git reset --hard(soft) HEAD^
(3)git push回退
git reset --hard(soft) HEAD~N
git push -f remote_host_name local_branch_name
4、分支
(1)查看当前分支:
git branch
(2)查看所有本地分支和远程分支:
git branch -a
(3)查看所有远程分支:
git branch -r
(4)根据远程分支创建本地分支:
git checkout -b local_branch_name remote_host_name/remote_branch_name
(5)切换分支:
git checkout branch_name
(6)重命名本地分支:
git branch -m old_branch_name new_branch_name
(7)删除本地分支:
git branch -d local_branch_name
(8)删除远程分支:
git push origin --delete remote_branch_name
(9)将修改后的本地分支与远程分支关联:
git branch --set-upstream-to remote_host_name/remote_branch_name
5、检出
(1)检出指定提交:
git cherry-pick commitId
(2)检出多个指定提交:
git cherry-pick commitId1 commitId2 …
(3)检出两个提交之间的所有连续提交(左闭右开):
git cherry-pick commitId1..commitIdn
(4)检出两个提交之间的所有连续提交(闭区间):
git cherry-pick commitId1^..commitIdn
(5)cherry-pick过程中解完冲突后:
git cherry-pick --continue
(6)cherry-pick完成使用push命令进行提交:
git push remote_host_name local_branch_name
(7)放弃cherry-pick:
git cherry-pick --abort
6、patch
(1)生成指定文件的patch:
git diff file_name > patch_name.patch
(2)生成所有文件的patch:
git diff > patch_name.patch
(3)生成最近N次提交的patch:
git format-patch HEAD~N
(4)生成单个提交的patch:
git format-patch -1 commitId
(5)生成某个提交以来的patch(不包含该提交):
git format-patch commitId
(6)生成两个提交之间的patch:
git format-patch commitId1..commitIdn
(7)生成从根到某个提交的所有patch:
git format-patch --root commitId
(8)应用patch:
git apply patch_name.patch
7、内容存储
(1)缓存当前的修改并移除:
git stash
(2)缓存当前的修改并移除,同时添加备注:
git stash save "message"
(3)查看缓存中的所有内容:
git stash list
(4)应用缓存中最新的内容:
git stash apply
(5)应用缓存中的指定内容:
git stash apply stash@{num}
(6)应用缓存中最新的内容,并删除缓存中相应的内容:
git stash pop
(7)移除指定的缓存:
git stash drop stash@{num}
(8)移除全部缓存:
git stash clear
(9)显示最新缓存与当前分支的差异:
git stash show stash@{num}
8、其它操作
(1)修改提交信息:
1)git rebase -i commitId
2)在弹出的vim编辑器中,把需要修改的commit信息从pick改为edit
3)git commit --amend
4)git rebase --continue
中途退出修改命令:
git rebase --abort
提交到远程仓:
git push -f remote_host_name local_branch_name
(2)增加源:
git remote add branch_name url
(3)统计指定提交者的代码量:
git log (--since="yyyy-mm-dd" --before="yyyy-mm-dd") --author="userName" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2;
loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %sn", add, su
bs, loc }' -
(4)统计所有提交者的代码量:
git log (--since="yyyy-mm-dd" --before="yyyy-mm-dd") --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
(5)统计指定提交者的提交次数:
git log (--since="yyyy-mm-dd" --before="yyyy-mm-dd") --author="userName" --oneline | wc -l
(6)统计所有提交者的提交次数:
git shortlog (--since="yyyy-mm-dd" --before="yyyy-mm-dd") -s -n
(7)配置git:
git config --global user.name "name"
git config --global user.email "email@example.com"
(8)查看git配置:
git config user.name
git config user.email
(9)本地删除文件后重新从远程仓拉取:
git checkout .
注:
1、()为可选项;
2、绿色字为可变量。