mirror of
				https://kkgithub.com/actions/checkout
				synced 2025-11-04 08:11:53 +08:00 
			
		
		
		
	add more scenarios (#112)
This commit is contained in:
		
							
								
								
									
										113
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								README.md
									
									
									
									
									
								
							@ -73,26 +73,84 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
<!-- end usage -->
 | 
					<!-- end usage -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Scenarios
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [Checkout a different branch](#Checkout-a-different-branch)
 | 
				
			||||||
 | 
					- [Checkout HEAD^](#Checkout-HEAD)
 | 
				
			||||||
 | 
					- [Checkout multiple repos (side by side)](#Checkout-multiple-repos-side-by-side)
 | 
				
			||||||
 | 
					- [Checkout multiple repos (nested)](#Checkout-multiple-repos-nested)
 | 
				
			||||||
 | 
					- [Checkout multiple repos (private)](#Checkout-multiple-repos-private)
 | 
				
			||||||
 | 
					- [Checkout pull request HEAD commit instead of merge commit](#Checkout-pull-request-HEAD-commit-instead-of-merge-commit)
 | 
				
			||||||
 | 
					- [Checkout pull request on closed event](#Checkout-pull-request-on-closed-event)
 | 
				
			||||||
 | 
					- [Checkout submodules](#Checkout-submodules)
 | 
				
			||||||
 | 
					- [Fetch all tags](#Fetch-all-tags)
 | 
				
			||||||
 | 
					- [Fetch all branches](#Fetch-all-branches)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Checkout a different branch
 | 
					## Checkout a different branch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- uses: actions/checkout@v2
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    ref: some-branch
 | 
					    ref: my-branch
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Checkout a different, private repository
 | 
					## Checkout HEAD^
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- uses: actions/checkout@v2
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    repository: myAccount/myRepository
 | 
					    fetch-depth: 2
 | 
				
			||||||
    ref: refs/heads/master
 | 
					- run: git checkout HEAD^
 | 
				
			||||||
    token: ${{ secrets.GitHub_PAT }} # `GitHub_PAT` is a secret that contains your PAT
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
> - `${{ github.token }}` is scoped to the current repository, so if you want to checkout another repository that is private you will need to provide your own [PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line).
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Checkout the HEAD commit of a PR, rather than the merge commit
 | 
					## Checkout multiple repos (side by side)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					- name: Checkout
 | 
				
			||||||
 | 
					  uses: actions/checkout@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    path: main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Checkout tools repo
 | 
				
			||||||
 | 
					  uses: actions/checkout@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    repository: my-org/my-tools
 | 
				
			||||||
 | 
					    path: my-tools
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Checkout multiple repos (nested)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					- name: Checkout
 | 
				
			||||||
 | 
					  uses: actions/checkout@v2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Checkout tools repo
 | 
				
			||||||
 | 
					  uses: actions/checkout@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    repository: my-org/my-tools
 | 
				
			||||||
 | 
					    path: my-tools
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Checkout multiple repos (private)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					- name: Checkout
 | 
				
			||||||
 | 
					  uses: actions/checkout@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    path: main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- name: Checkout private tools
 | 
				
			||||||
 | 
					  uses: actions/checkout@v2
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    repository: my-org/my-private-tools
 | 
				
			||||||
 | 
					    token: ${{ secrets.GitHub_PAT }} # `GitHub_PAT` is a secret that contains your PAT
 | 
				
			||||||
 | 
					    path: my-tools
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> - `${{ github.token }}` is scoped to the current repository, so if you want to checkout a different repository that is private you will need to provide your own [PAT](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Checkout pull request HEAD commit instead of merge commit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
- uses: actions/checkout@v2
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
@ -100,6 +158,47 @@ Refer [here](https://github.com/actions/checkout/blob/v1/README.md) for previous
 | 
				
			|||||||
    ref: ${{ github.event.pull_request.head.sha }}
 | 
					    ref: ${{ github.event.pull_request.head.sha }}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Checkout pull request on closed event
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  pull_request:
 | 
				
			||||||
 | 
					    branches: [master]
 | 
				
			||||||
 | 
					    types: [opened, synchronize, closed]
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@v2
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Checkout submodules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
 | 
					- name: Checkout submodules
 | 
				
			||||||
 | 
					  shell: bash
 | 
				
			||||||
 | 
					  run: |
 | 
				
			||||||
 | 
					    auth_header="$(git config --local --get http.https://github.com/.extraheader)"
 | 
				
			||||||
 | 
					    git submodule sync --recursive
 | 
				
			||||||
 | 
					    git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Fetch all tags
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
 | 
					- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Fetch all branches
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					- uses: actions/checkout@v2
 | 
				
			||||||
 | 
					- run: |
 | 
				
			||||||
 | 
					    git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# License
 | 
					# License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The scripts and documentation in this project are released under the [MIT License](LICENSE)
 | 
					The scripts and documentation in this project are released under the [MIT License](LICENSE)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user